﻿2026-06-15T09:40:48.6828177Z ##[group]Run ./traceable-reqs check --json
2026-06-15T09:40:48.6828489Z [36;1m./traceable-reqs check --json[0m
2026-06-15T09:40:48.6841547Z shell: /usr/bin/bash -e {0}
2026-06-15T09:40:48.6841768Z ##[endgroup]
2026-06-15T09:40:48.7789722Z {
2026-06-15T09:40:48.7790281Z   "schemaVersion": 1,
2026-06-15T09:40:48.7790661Z   "summary": {
2026-06-15T09:40:48.7791014Z     "requirementCount": 208,
2026-06-15T09:40:48.7791420Z     "completeCount": 208,
2026-06-15T09:40:48.7791788Z     "incompleteCount": 0,
2026-06-15T09:40:48.7792154Z     "findingCount": 0
2026-06-15T09:40:48.7792477Z   },
2026-06-15T09:40:48.7792778Z   "requirements": [
2026-06-15T09:40:48.7793097Z     {
2026-06-15T09:40:48.7793436Z       "id": "REQ-API-1",
2026-06-15T09:40:48.7793970Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T09:40:48.7794576Z       "requiredStages": [
2026-06-15T09:40:48.7795011Z         "impl",
2026-06-15T09:40:48.7795321Z         "unit",
2026-06-15T09:40:48.7795612Z         "int"
2026-06-15T09:40:48.7795979Z       ],
2026-06-15T09:40:48.7796280Z       "stages": {
2026-06-15T09:40:48.7796599Z         "doc": {
2026-06-15T09:40:48.7796947Z           "complete": false,
2026-06-15T09:40:48.7797410Z           "evidence": []
2026-06-15T09:40:48.7797753Z         },
2026-06-15T09:40:48.7798053Z         "impl": {
2026-06-15T09:40:48.7798382Z           "complete": true,
2026-06-15T09:40:48.7798741Z           "evidence": [
2026-06-15T09:40:48.7799171Z             {
2026-06-15T09:40:48.7799523Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.7799981Z               "line": 15
2026-06-15T09:40:48.7800325Z             }
2026-06-15T09:40:48.7800630Z           ]
2026-06-15T09:40:48.7800906Z         },
2026-06-15T09:40:48.7801202Z         "int": {
2026-06-15T09:40:48.7801540Z           "complete": true,
2026-06-15T09:40:48.7801923Z           "evidence": [
2026-06-15T09:40:48.7802262Z             {
2026-06-15T09:40:48.7802627Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.7803118Z               "line": 13
2026-06-15T09:40:48.7803471Z             }
2026-06-15T09:40:48.7803766Z           ]
2026-06-15T09:40:48.7804000Z         },
2026-06-15T09:40:48.7804235Z         "unit": {
2026-06-15T09:40:48.7804506Z           "complete": true,
2026-06-15T09:40:48.7804781Z           "evidence": [
2026-06-15T09:40:48.7805056Z             {
2026-06-15T09:40:48.7805337Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.7805694Z               "line": 480
2026-06-15T09:40:48.7805976Z             },
2026-06-15T09:40:48.7806238Z             {
2026-06-15T09:40:48.7806515Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.7806872Z               "line": 518
2026-06-15T09:40:48.7807150Z             },
2026-06-15T09:40:48.7807402Z             {
2026-06-15T09:40:48.7807696Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.7808051Z               "line": 586
2026-06-15T09:40:48.7808337Z             }
2026-06-15T09:40:48.7808585Z           ]
2026-06-15T09:40:48.7808834Z         }
2026-06-15T09:40:48.7809124Z       }
2026-06-15T09:40:48.7809359Z     },
2026-06-15T09:40:48.7809577Z     {
2026-06-15T09:40:48.7809811Z       "id": "REQ-API-2",
2026-06-15T09:40:48.7810291Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T09:40:48.7810832Z       "requiredStages": [
2026-06-15T09:40:48.7811119Z         "impl",
2026-06-15T09:40:48.7811367Z         "unit",
2026-06-15T09:40:48.7811620Z         "int"
2026-06-15T09:40:48.7811872Z       ],
2026-06-15T09:40:48.7812120Z       "stages": {
2026-06-15T09:40:48.7812367Z         "doc": {
2026-06-15T09:40:48.7812650Z           "complete": false,
2026-06-15T09:40:48.7812955Z           "evidence": []
2026-06-15T09:40:48.7813240Z         },
2026-06-15T09:40:48.7813478Z         "impl": {
2026-06-15T09:40:48.7813750Z           "complete": true,
2026-06-15T09:40:48.7814369Z           "evidence": [
2026-06-15T09:40:48.7814642Z             {
2026-06-15T09:40:48.7815190Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.7815577Z               "line": 17
2026-06-15T09:40:48.7815850Z             },
2026-06-15T09:40:48.7816108Z             {
2026-06-15T09:40:48.7816404Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.7816779Z               "line": 20
2026-06-15T09:40:48.7817038Z             },
2026-06-15T09:40:48.7817275Z             {
2026-06-15T09:40:48.7817566Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.7817929Z               "line": 142
2026-06-15T09:40:48.7818217Z             },
2026-06-15T09:40:48.7818454Z             {
2026-06-15T09:40:48.7818760Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7819207Z               "line": 24
2026-06-15T09:40:48.7819470Z             },
2026-06-15T09:40:48.7819732Z             {
2026-06-15T09:40:48.7820090Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7820501Z               "line": 41
2026-06-15T09:40:48.7820804Z             },
2026-06-15T09:40:48.7821050Z             {
2026-06-15T09:40:48.7821374Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7821750Z               "line": 209
2026-06-15T09:40:48.7822027Z             },
2026-06-15T09:40:48.7822279Z             {
2026-06-15T09:40:48.7822576Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7822923Z               "line": 251
2026-06-15T09:40:48.7823200Z             },
2026-06-15T09:40:48.7823435Z             {
2026-06-15T09:40:48.7823733Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7824111Z               "line": 330
2026-06-15T09:40:48.7824378Z             },
2026-06-15T09:40:48.7824619Z             {
2026-06-15T09:40:48.7824910Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7825283Z               "line": 17
2026-06-15T09:40:48.7825564Z             },
2026-06-15T09:40:48.7825811Z             {
2026-06-15T09:40:48.7826110Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7826462Z               "line": 30
2026-06-15T09:40:48.7826744Z             },
2026-06-15T09:40:48.7826997Z             {
2026-06-15T09:40:48.7827288Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7827678Z               "line": 63
2026-06-15T09:40:48.7827970Z             },
2026-06-15T09:40:48.7828218Z             {
2026-06-15T09:40:48.7828518Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7828893Z               "line": 77
2026-06-15T09:40:48.7829181Z             }
2026-06-15T09:40:48.7829334Z           ]
2026-06-15T09:40:48.7829496Z         },
2026-06-15T09:40:48.7829653Z         "int": {
2026-06-15T09:40:48.7829831Z           "complete": true,
2026-06-15T09:40:48.7830025Z           "evidence": [
2026-06-15T09:40:48.7830212Z             {
2026-06-15T09:40:48.7830411Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.7830654Z               "line": 14
2026-06-15T09:40:48.7830846Z             },
2026-06-15T09:40:48.7831008Z             {
2026-06-15T09:40:48.7831208Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.7831445Z               "line": 187
2026-06-15T09:40:48.7831624Z             }
2026-06-15T09:40:48.7831772Z           ]
2026-06-15T09:40:48.7831920Z         },
2026-06-15T09:40:48.7832073Z         "unit": {
2026-06-15T09:40:48.7832239Z           "complete": true,
2026-06-15T09:40:48.7832430Z           "evidence": [
2026-06-15T09:40:48.7832620Z             {
2026-06-15T09:40:48.7832821Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.7833060Z               "line": 82
2026-06-15T09:40:48.7833236Z             },
2026-06-15T09:40:48.7833394Z             {
2026-06-15T09:40:48.7833583Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.7833831Z               "line": 264
2026-06-15T09:40:48.7834165Z             },
2026-06-15T09:40:48.7834331Z             {
2026-06-15T09:40:48.7834651Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7834894Z               "line": 585
2026-06-15T09:40:48.7835076Z             },
2026-06-15T09:40:48.7835237Z             {
2026-06-15T09:40:48.7835424Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7835653Z               "line": 596
2026-06-15T09:40:48.7835833Z             },
2026-06-15T09:40:48.7835987Z             {
2026-06-15T09:40:48.7836182Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7836414Z               "line": 749
2026-06-15T09:40:48.7836595Z             },
2026-06-15T09:40:48.7836745Z             {
2026-06-15T09:40:48.7836941Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7837185Z               "line": 795
2026-06-15T09:40:48.7837361Z             },
2026-06-15T09:40:48.7837524Z             {
2026-06-15T09:40:48.7837727Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7837962Z               "line": 143
2026-06-15T09:40:48.7838148Z             },
2026-06-15T09:40:48.7838315Z             {
2026-06-15T09:40:48.7838506Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.7838729Z               "line": 187
2026-06-15T09:40:48.7838915Z             }
2026-06-15T09:40:48.7839150Z           ]
2026-06-15T09:40:48.7839315Z         }
2026-06-15T09:40:48.7839467Z       }
2026-06-15T09:40:48.7839631Z     },
2026-06-15T09:40:48.7839795Z     {
2026-06-15T09:40:48.7839960Z       "id": "REQ-API-3",
2026-06-15T09:40:48.7840251Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T09:40:48.7840710Z       "requiredStages": [
2026-06-15T09:40:48.7841001Z         "impl",
2026-06-15T09:40:48.7841248Z         "unit",
2026-06-15T09:40:48.7841481Z         "int"
2026-06-15T09:40:48.7841712Z       ],
2026-06-15T09:40:48.7841928Z       "stages": {
2026-06-15T09:40:48.7842180Z         "doc": {
2026-06-15T09:40:48.7842433Z           "complete": false,
2026-06-15T09:40:48.7842719Z           "evidence": []
2026-06-15T09:40:48.7842995Z         },
2026-06-15T09:40:48.7843234Z         "impl": {
2026-06-15T09:40:48.7843495Z           "complete": true,
2026-06-15T09:40:48.7843777Z           "evidence": [
2026-06-15T09:40:48.7844039Z             {
2026-06-15T09:40:48.7872256Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.7872777Z               "line": 27
2026-06-15T09:40:48.7873087Z             },
2026-06-15T09:40:48.7873345Z             {
2026-06-15T09:40:48.7873643Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7874047Z               "line": 442
2026-06-15T09:40:48.7874338Z             }
2026-06-15T09:40:48.7874575Z           ]
2026-06-15T09:40:48.7874813Z         },
2026-06-15T09:40:48.7875043Z         "int": {
2026-06-15T09:40:48.7875311Z           "complete": true,
2026-06-15T09:40:48.7875611Z           "evidence": [
2026-06-15T09:40:48.7875911Z             {
2026-06-15T09:40:48.7876222Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.7876615Z               "line": 261
2026-06-15T09:40:48.7876877Z             }
2026-06-15T09:40:48.7877115Z           ]
2026-06-15T09:40:48.7877359Z         },
2026-06-15T09:40:48.7877597Z         "unit": {
2026-06-15T09:40:48.7877851Z           "complete": true,
2026-06-15T09:40:48.7878142Z           "evidence": [
2026-06-15T09:40:48.7878442Z             {
2026-06-15T09:40:48.7878740Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.7879115Z               "line": 280
2026-06-15T09:40:48.7879301Z             },
2026-06-15T09:40:48.7879478Z             {
2026-06-15T09:40:48.7879682Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.7879930Z               "line": 824
2026-06-15T09:40:48.7880108Z             }
2026-06-15T09:40:48.7880264Z           ]
2026-06-15T09:40:48.7880418Z         }
2026-06-15T09:40:48.7880765Z       }
2026-06-15T09:40:48.7880922Z     },
2026-06-15T09:40:48.7881080Z     {
2026-06-15T09:40:48.7881237Z       "id": "REQ-ARCH-1",
2026-06-15T09:40:48.7881578Z       "title": "Many small acyclically-layered crates",
2026-06-15T09:40:48.7881834Z       "requiredStages": [
2026-06-15T09:40:48.7882016Z         "impl"
2026-06-15T09:40:48.7882173Z       ],
2026-06-15T09:40:48.7882326Z       "stages": {
2026-06-15T09:40:48.7882506Z         "doc": {
2026-06-15T09:40:48.7882679Z           "complete": false,
2026-06-15T09:40:48.7882868Z           "evidence": []
2026-06-15T09:40:48.7883045Z         },
2026-06-15T09:40:48.7883193Z         "impl": {
2026-06-15T09:40:48.7883365Z           "complete": true,
2026-06-15T09:40:48.7883551Z           "evidence": [
2026-06-15T09:40:48.7883717Z             {
2026-06-15T09:40:48.7883905Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T09:40:48.7884127Z               "line": 18
2026-06-15T09:40:48.7884298Z             },
2026-06-15T09:40:48.7884458Z             {
2026-06-15T09:40:48.7884650Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T09:40:48.7884883Z               "line": 12
2026-06-15T09:40:48.7885059Z             },
2026-06-15T09:40:48.7885212Z             {
2026-06-15T09:40:48.7885393Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T09:40:48.7885622Z               "line": 12
2026-06-15T09:40:48.7885793Z             }
2026-06-15T09:40:48.7885955Z           ]
2026-06-15T09:40:48.7886104Z         },
2026-06-15T09:40:48.7886256Z         "int": {
2026-06-15T09:40:48.7886423Z           "complete": false,
2026-06-15T09:40:48.7886618Z           "evidence": []
2026-06-15T09:40:48.7886791Z         },
2026-06-15T09:40:48.7886947Z         "unit": {
2026-06-15T09:40:48.7887118Z           "complete": false,
2026-06-15T09:40:48.7887313Z           "evidence": []
2026-06-15T09:40:48.7887491Z         }
2026-06-15T09:40:48.7887642Z       }
2026-06-15T09:40:48.7887796Z     },
2026-06-15T09:40:48.7887942Z     {
2026-06-15T09:40:48.7888106Z       "id": "REQ-ARCH-2",
2026-06-15T09:40:48.7888363Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T09:40:48.7902478Z       "requiredStages": [
2026-06-15T09:40:48.7902776Z         "impl"
2026-06-15T09:40:48.7902992Z       ],
2026-06-15T09:40:48.7903184Z       "stages": {
2026-06-15T09:40:48.7903398Z         "doc": {
2026-06-15T09:40:48.7903607Z           "complete": false,
2026-06-15T09:40:48.7903846Z           "evidence": []
2026-06-15T09:40:48.7904042Z         },
2026-06-15T09:40:48.7904194Z         "impl": {
2026-06-15T09:40:48.7904367Z           "complete": true,
2026-06-15T09:40:48.7904561Z           "evidence": [
2026-06-15T09:40:48.7904739Z             {
2026-06-15T09:40:48.7904929Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T09:40:48.7905162Z               "line": 18
2026-06-15T09:40:48.7905337Z             }
2026-06-15T09:40:48.7905488Z           ]
2026-06-15T09:40:48.7905631Z         },
2026-06-15T09:40:48.7905784Z         "int": {
2026-06-15T09:40:48.7905969Z           "complete": false,
2026-06-15T09:40:48.7906160Z           "evidence": []
2026-06-15T09:40:48.7906333Z         },
2026-06-15T09:40:48.7906489Z         "unit": {
2026-06-15T09:40:48.7906662Z           "complete": false,
2026-06-15T09:40:48.7906847Z           "evidence": []
2026-06-15T09:40:48.7907019Z         }
2026-06-15T09:40:48.7907176Z       }
2026-06-15T09:40:48.7907324Z     },
2026-06-15T09:40:48.7907476Z     {
2026-06-15T09:40:48.7907639Z       "id": "REQ-ARCH-3",
2026-06-15T09:40:48.7907936Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T09:40:48.7908262Z       "requiredStages": [
2026-06-15T09:40:48.7908452Z         "impl",
2026-06-15T09:40:48.7908616Z         "unit"
2026-06-15T09:40:48.7908776Z       ],
2026-06-15T09:40:48.7908926Z       "stages": {
2026-06-15T09:40:48.7909188Z         "doc": {
2026-06-15T09:40:48.7909359Z           "complete": false,
2026-06-15T09:40:48.7909555Z           "evidence": []
2026-06-15T09:40:48.7909908Z         },
2026-06-15T09:40:48.7910064Z         "impl": {
2026-06-15T09:40:48.7910237Z           "complete": true,
2026-06-15T09:40:48.7910554Z           "evidence": [
2026-06-15T09:40:48.7910733Z             {
2026-06-15T09:40:48.7910924Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:40:48.7911159Z               "line": 34
2026-06-15T09:40:48.7911334Z             },
2026-06-15T09:40:48.7911493Z             {
2026-06-15T09:40:48.7911677Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:40:48.7911916Z               "line": 41
2026-06-15T09:40:48.7912088Z             }
2026-06-15T09:40:48.7912231Z           ]
2026-06-15T09:40:48.7912389Z         },
2026-06-15T09:40:48.7912550Z         "int": {
2026-06-15T09:40:48.7912718Z           "complete": false,
2026-06-15T09:40:48.7912912Z           "evidence": []
2026-06-15T09:40:48.7913081Z         },
2026-06-15T09:40:48.7913226Z         "unit": {
2026-06-15T09:40:48.7913403Z           "complete": true,
2026-06-15T09:40:48.7913596Z           "evidence": [
2026-06-15T09:40:48.7913763Z             {
2026-06-15T09:40:48.7913943Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:40:48.7914186Z               "line": 51
2026-06-15T09:40:48.7914355Z             },
2026-06-15T09:40:48.7914515Z             {
2026-06-15T09:40:48.7914698Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:40:48.7914922Z               "line": 71
2026-06-15T09:40:48.7915097Z             },
2026-06-15T09:40:48.7915261Z             {
2026-06-15T09:40:48.7915451Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T09:40:48.7915666Z               "line": 83
2026-06-15T09:40:48.7915835Z             }
2026-06-15T09:40:48.7916002Z           ]
2026-06-15T09:40:48.7916157Z         }
2026-06-15T09:40:48.7916321Z       }
2026-06-15T09:40:48.7916472Z     },
2026-06-15T09:40:48.7916626Z     {
2026-06-15T09:40:48.7916792Z       "id": "REQ-ARCH-4",
2026-06-15T09:40:48.7917058Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T09:40:48.7917359Z       "requiredStages": [
2026-06-15T09:40:48.7917551Z         "impl",
2026-06-15T09:40:48.7917722Z         "unit"
2026-06-15T09:40:48.7917880Z       ],
2026-06-15T09:40:48.7918022Z       "stages": {
2026-06-15T09:40:48.7918190Z         "doc": {
2026-06-15T09:40:48.7918361Z           "complete": false,
2026-06-15T09:40:48.7918556Z           "evidence": []
2026-06-15T09:40:48.7918721Z         },
2026-06-15T09:40:48.7918876Z         "impl": {
2026-06-15T09:40:48.7919118Z           "complete": true,
2026-06-15T09:40:48.7919313Z           "evidence": [
2026-06-15T09:40:48.7919490Z             {
2026-06-15T09:40:48.7919670Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7919905Z               "line": 157
2026-06-15T09:40:48.7920087Z             },
2026-06-15T09:40:48.7920248Z             {
2026-06-15T09:40:48.7920430Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7920658Z               "line": 180
2026-06-15T09:40:48.7920844Z             },
2026-06-15T09:40:48.7920990Z             {
2026-06-15T09:40:48.7921170Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7921399Z               "line": 200
2026-06-15T09:40:48.7921589Z             },
2026-06-15T09:40:48.7921748Z             {
2026-06-15T09:40:48.7921927Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7922156Z               "line": 215
2026-06-15T09:40:48.7922329Z             },
2026-06-15T09:40:48.7922481Z             {
2026-06-15T09:40:48.7922663Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7922881Z               "line": 265
2026-06-15T09:40:48.7923048Z             }
2026-06-15T09:40:48.7923206Z           ]
2026-06-15T09:40:48.7923363Z         },
2026-06-15T09:40:48.7923506Z         "int": {
2026-06-15T09:40:48.7923674Z           "complete": false,
2026-06-15T09:40:48.7923862Z           "evidence": []
2026-06-15T09:40:48.7924042Z         },
2026-06-15T09:40:48.7924295Z         "unit": {
2026-06-15T09:40:48.7924475Z           "complete": true,
2026-06-15T09:40:48.7924756Z           "evidence": [
2026-06-15T09:40:48.7924929Z             {
2026-06-15T09:40:48.7925109Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7925344Z               "line": 326
2026-06-15T09:40:48.7925516Z             },
2026-06-15T09:40:48.7925667Z             {
2026-06-15T09:40:48.7925850Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7926073Z               "line": 336
2026-06-15T09:40:48.7926236Z             },
2026-06-15T09:40:48.7926386Z             {
2026-06-15T09:40:48.7926572Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7926794Z               "line": 347
2026-06-15T09:40:48.7926961Z             },
2026-06-15T09:40:48.7927119Z             {
2026-06-15T09:40:48.7927304Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7927533Z               "line": 358
2026-06-15T09:40:48.7927720Z             },
2026-06-15T09:40:48.7927906Z             {
2026-06-15T09:40:48.7928092Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7928320Z               "line": 370
2026-06-15T09:40:48.7928501Z             },
2026-06-15T09:40:48.7928659Z             {
2026-06-15T09:40:48.7928834Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7929145Z               "line": 383
2026-06-15T09:40:48.7929325Z             },
2026-06-15T09:40:48.7929492Z             {
2026-06-15T09:40:48.7929678Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7929907Z               "line": 394
2026-06-15T09:40:48.7930084Z             },
2026-06-15T09:40:48.7930240Z             {
2026-06-15T09:40:48.7930431Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7930652Z               "line": 411
2026-06-15T09:40:48.7930832Z             },
2026-06-15T09:40:48.7930990Z             {
2026-06-15T09:40:48.7931185Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.7931418Z               "line": 539
2026-06-15T09:40:48.7931613Z             }
2026-06-15T09:40:48.7931778Z           ]
2026-06-15T09:40:48.7931940Z         }
2026-06-15T09:40:48.7932097Z       }
2026-06-15T09:40:48.7932245Z     },
2026-06-15T09:40:48.7932407Z     {
2026-06-15T09:40:48.7932570Z       "id": "REQ-CLI-1",
2026-06-15T09:40:48.7933728Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T09:40:48.7934893Z       "requiredStages": [
2026-06-15T09:40:48.7935083Z         "impl",
2026-06-15T09:40:48.7935246Z         "unit"
2026-06-15T09:40:48.7935408Z       ],
2026-06-15T09:40:48.7935561Z       "stages": {
2026-06-15T09:40:48.7935742Z         "doc": {
2026-06-15T09:40:48.7935909Z           "complete": false,
2026-06-15T09:40:48.7936114Z           "evidence": []
2026-06-15T09:40:48.7936294Z         },
2026-06-15T09:40:48.7936458Z         "impl": {
2026-06-15T09:40:48.7936628Z           "complete": true,
2026-06-15T09:40:48.7936824Z           "evidence": [
2026-06-15T09:40:48.7936994Z             {
2026-06-15T09:40:48.7937183Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.7937412Z               "line": 225
2026-06-15T09:40:48.7937583Z             },
2026-06-15T09:40:48.7937741Z             {
2026-06-15T09:40:48.7937922Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.7938142Z               "line": 984
2026-06-15T09:40:48.7938318Z             },
2026-06-15T09:40:48.7938480Z             {
2026-06-15T09:40:48.7938657Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.7938885Z               "line": 1512
2026-06-15T09:40:48.7939138Z             },
2026-06-15T09:40:48.7939409Z             {
2026-06-15T09:40:48.7939578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.7939900Z               "line": 2723
2026-06-15T09:40:48.7940081Z             }
2026-06-15T09:40:48.7940238Z           ]
2026-06-15T09:40:48.7940391Z         },
2026-06-15T09:40:48.7940549Z         "int": {
2026-06-15T09:40:48.7940724Z           "complete": false,
2026-06-15T09:40:48.7940916Z           "evidence": []
2026-06-15T09:40:48.7941101Z         },
2026-06-15T09:40:48.7941255Z         "unit": {
2026-06-15T09:40:48.7941435Z           "complete": true,
2026-06-15T09:40:48.7941621Z           "evidence": [
2026-06-15T09:40:48.7941788Z             {
2026-06-15T09:40:48.7941964Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.7942183Z               "line": 6410
2026-06-15T09:40:48.7942357Z             }
2026-06-15T09:40:48.7942510Z           ]
2026-06-15T09:40:48.7942666Z         }
2026-06-15T09:40:48.7942825Z       }
2026-06-15T09:40:48.7942986Z     },
2026-06-15T09:40:48.7943135Z     {
2026-06-15T09:40:48.7943286Z       "id": "REQ-CLI-2",
2026-06-15T09:40:48.7944075Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T09:40:48.7944864Z       "requiredStages": [
2026-06-15T09:40:48.7945055Z         "impl",
2026-06-15T09:40:48.7945210Z         "unit"
2026-06-15T09:40:48.7945372Z       ],
2026-06-15T09:40:48.7945524Z       "stages": {
2026-06-15T09:40:48.7945692Z         "doc": {
2026-06-15T09:40:48.7945858Z           "complete": false,
2026-06-15T09:40:48.7946054Z           "evidence": []
2026-06-15T09:40:48.7946229Z         },
2026-06-15T09:40:48.7946383Z         "impl": {
2026-06-15T09:40:48.7946559Z           "complete": true,
2026-06-15T09:40:48.7946750Z           "evidence": [
2026-06-15T09:40:48.7946932Z             {
2026-06-15T09:40:48.7947131Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.7947375Z               "line": 345
2026-06-15T09:40:48.7947545Z             },
2026-06-15T09:40:48.7947715Z             {
2026-06-15T09:40:48.7947905Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:40:48.7948143Z               "line": 78
2026-06-15T09:40:48.7948325Z             },
2026-06-15T09:40:48.7948482Z             {
2026-06-15T09:40:48.7948673Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.7948907Z               "line": 239
2026-06-15T09:40:48.7949149Z             },
2026-06-15T09:40:48.7949312Z             {
2026-06-15T09:40:48.7949484Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8004672Z               "line": 419
2026-06-15T09:40:48.8004944Z             },
2026-06-15T09:40:48.8005134Z             {
2026-06-15T09:40:48.8005339Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8005614Z               "line": 1067
2026-06-15T09:40:48.8005808Z             },
2026-06-15T09:40:48.8005966Z             {
2026-06-15T09:40:48.8006157Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8006380Z               "line": 1707
2026-06-15T09:40:48.8006557Z             },
2026-06-15T09:40:48.8006714Z             {
2026-06-15T09:40:48.8006891Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8007106Z               "line": 1786
2026-06-15T09:40:48.8007277Z             },
2026-06-15T09:40:48.8007436Z             {
2026-06-15T09:40:48.8007601Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8007821Z               "line": 1847
2026-06-15T09:40:48.8007987Z             }
2026-06-15T09:40:48.8008141Z           ]
2026-06-15T09:40:48.8008296Z         },
2026-06-15T09:40:48.8008458Z         "int": {
2026-06-15T09:40:48.8008632Z           "complete": false,
2026-06-15T09:40:48.8008833Z           "evidence": []
2026-06-15T09:40:48.8009086Z         },
2026-06-15T09:40:48.8009501Z         "unit": {
2026-06-15T09:40:48.8009673Z           "complete": true,
2026-06-15T09:40:48.8009983Z           "evidence": [
2026-06-15T09:40:48.8010148Z             {
2026-06-15T09:40:48.8010345Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.8010593Z               "line": 309
2026-06-15T09:40:48.8010778Z             },
2026-06-15T09:40:48.8010939Z             {
2026-06-15T09:40:48.8011119Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8011343Z               "line": 6548
2026-06-15T09:40:48.8011513Z             }
2026-06-15T09:40:48.8011677Z           ]
2026-06-15T09:40:48.8011838Z         }
2026-06-15T09:40:48.8011987Z       }
2026-06-15T09:40:48.8012143Z     },
2026-06-15T09:40:48.8012301Z     {
2026-06-15T09:40:48.8012467Z       "id": "REQ-CLI-3",
2026-06-15T09:40:48.8013269Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T09:40:48.8014131Z       "requiredStages": [
2026-06-15T09:40:48.8014326Z         "impl",
2026-06-15T09:40:48.8014494Z         "unit"
2026-06-15T09:40:48.8014655Z       ],
2026-06-15T09:40:48.8014813Z       "stages": {
2026-06-15T09:40:48.8014984Z         "doc": {
2026-06-15T09:40:48.8015148Z           "complete": false,
2026-06-15T09:40:48.8015351Z           "evidence": []
2026-06-15T09:40:48.8015528Z         },
2026-06-15T09:40:48.8015686Z         "impl": {
2026-06-15T09:40:48.8015857Z           "complete": true,
2026-06-15T09:40:48.8016051Z           "evidence": [
2026-06-15T09:40:48.8016225Z             {
2026-06-15T09:40:48.8016402Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8016635Z               "line": 978
2026-06-15T09:40:48.8016817Z             }
2026-06-15T09:40:48.8016978Z           ]
2026-06-15T09:40:48.8017132Z         },
2026-06-15T09:40:48.8017293Z         "int": {
2026-06-15T09:40:48.8017465Z           "complete": false,
2026-06-15T09:40:48.8017666Z           "evidence": []
2026-06-15T09:40:48.8017846Z         },
2026-06-15T09:40:48.8018000Z         "unit": {
2026-06-15T09:40:48.8018166Z           "complete": true,
2026-06-15T09:40:48.8018353Z           "evidence": [
2026-06-15T09:40:48.8018529Z             {
2026-06-15T09:40:48.8018710Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8018928Z               "line": 6375
2026-06-15T09:40:48.8019187Z             }
2026-06-15T09:40:48.8019346Z           ]
2026-06-15T09:40:48.8019502Z         }
2026-06-15T09:40:48.8019656Z       }
2026-06-15T09:40:48.8019817Z     },
2026-06-15T09:40:48.8019961Z     {
2026-06-15T09:40:48.8020127Z       "id": "REQ-CONSENT-1",
2026-06-15T09:40:48.8021095Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T09:40:48.8022108Z       "requiredStages": [
2026-06-15T09:40:48.8022294Z         "impl",
2026-06-15T09:40:48.8022466Z         "unit"
2026-06-15T09:40:48.8022628Z       ],
2026-06-15T09:40:48.8022781Z       "stages": {
2026-06-15T09:40:48.8022952Z         "doc": {
2026-06-15T09:40:48.8023120Z           "complete": false,
2026-06-15T09:40:48.8023323Z           "evidence": []
2026-06-15T09:40:48.8023500Z         },
2026-06-15T09:40:48.8023652Z         "impl": {
2026-06-15T09:40:48.8023815Z           "complete": true,
2026-06-15T09:40:48.8024006Z           "evidence": [
2026-06-15T09:40:48.8024182Z             {
2026-06-15T09:40:48.8024376Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8024624Z               "line": 27
2026-06-15T09:40:48.8024801Z             },
2026-06-15T09:40:48.8024957Z             {
2026-06-15T09:40:48.8025262Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8025497Z               "line": 75
2026-06-15T09:40:48.8025764Z             },
2026-06-15T09:40:48.8025926Z             {
2026-06-15T09:40:48.8026116Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8026347Z               "line": 98
2026-06-15T09:40:48.8026521Z             },
2026-06-15T09:40:48.8026678Z             {
2026-06-15T09:40:48.8026866Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8027086Z               "line": 82
2026-06-15T09:40:48.8027263Z             },
2026-06-15T09:40:48.8027420Z             {
2026-06-15T09:40:48.8027607Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8027844Z               "line": 109
2026-06-15T09:40:48.8028025Z             },
2026-06-15T09:40:48.8028182Z             {
2026-06-15T09:40:48.8028379Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8028613Z               "line": 127
2026-06-15T09:40:48.8028798Z             },
2026-06-15T09:40:48.8029026Z             {
2026-06-15T09:40:48.8029224Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8029454Z               "line": 142
2026-06-15T09:40:48.8029630Z             },
2026-06-15T09:40:48.8029791Z             {
2026-06-15T09:40:48.8029977Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8030197Z               "line": 5962
2026-06-15T09:40:48.8030382Z             }
2026-06-15T09:40:48.8030530Z           ]
2026-06-15T09:40:48.8030687Z         },
2026-06-15T09:40:48.8030832Z         "int": {
2026-06-15T09:40:48.8031007Z           "complete": false,
2026-06-15T09:40:48.8031188Z           "evidence": []
2026-06-15T09:40:48.8031364Z         },
2026-06-15T09:40:48.8031527Z         "unit": {
2026-06-15T09:40:48.8031694Z           "complete": true,
2026-06-15T09:40:48.8031874Z           "evidence": [
2026-06-15T09:40:48.8032050Z             {
2026-06-15T09:40:48.8032239Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8032478Z               "line": 334
2026-06-15T09:40:48.8032658Z             },
2026-06-15T09:40:48.8032816Z             {
2026-06-15T09:40:48.8033006Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8033240Z               "line": 380
2026-06-15T09:40:48.8033407Z             },
2026-06-15T09:40:48.8033569Z             {
2026-06-15T09:40:48.8033755Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8033990Z               "line": 391
2026-06-15T09:40:48.8034170Z             },
2026-06-15T09:40:48.8034319Z             {
2026-06-15T09:40:48.8034504Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8034742Z               "line": 165
2026-06-15T09:40:48.8034926Z             },
2026-06-15T09:40:48.8035080Z             {
2026-06-15T09:40:48.8035271Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8035493Z               "line": 184
2026-06-15T09:40:48.8035686Z             },
2026-06-15T09:40:48.8035852Z             {
2026-06-15T09:40:48.8036042Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T09:40:48.8036286Z               "line": 204
2026-06-15T09:40:48.8036457Z             },
2026-06-15T09:40:48.8036620Z             {
2026-06-15T09:40:48.8036796Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8037020Z               "line": 6728
2026-06-15T09:40:48.8037205Z             }
2026-06-15T09:40:48.8037365Z           ]
2026-06-15T09:40:48.8037527Z         }
2026-06-15T09:40:48.8037689Z       }
2026-06-15T09:40:48.8037842Z     },
2026-06-15T09:40:48.8038013Z     {
2026-06-15T09:40:48.8038233Z       "id": "REQ-CONSENT-2",
2026-06-15T09:40:48.8039373Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T09:40:48.8040642Z       "requiredStages": [
2026-06-15T09:40:48.8041043Z         "impl",
2026-06-15T09:40:48.8041319Z         "unit"
2026-06-15T09:40:48.8041586Z       ],
2026-06-15T09:40:48.8041829Z       "stages": {
2026-06-15T09:40:48.8042124Z         "doc": {
2026-06-15T09:40:48.8042425Z           "complete": false,
2026-06-15T09:40:48.8042719Z           "evidence": []
2026-06-15T09:40:48.8043004Z         },
2026-06-15T09:40:48.8043237Z         "impl": {
2026-06-15T09:40:48.8043528Z           "complete": true,
2026-06-15T09:40:48.8043814Z           "evidence": [
2026-06-15T09:40:48.8044062Z             {
2026-06-15T09:40:48.8044429Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8044792Z               "line": 140
2026-06-15T09:40:48.8045097Z             },
2026-06-15T09:40:48.8045344Z             {
2026-06-15T09:40:48.8045607Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8045992Z               "line": 165
2026-06-15T09:40:48.8046274Z             },
2026-06-15T09:40:48.8046551Z             {
2026-06-15T09:40:48.8046889Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8047199Z               "line": 199
2026-06-15T09:40:48.8047532Z             },
2026-06-15T09:40:48.8047784Z             {
2026-06-15T09:40:48.8048092Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8048426Z               "line": 241
2026-06-15T09:40:48.8048703Z             },
2026-06-15T09:40:48.8049065Z             {
2026-06-15T09:40:48.8049375Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8049733Z               "line": 269
2026-06-15T09:40:48.8050000Z             },
2026-06-15T09:40:48.8050262Z             {
2026-06-15T09:40:48.8050579Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8050897Z               "line": 300
2026-06-15T09:40:48.8051154Z             },
2026-06-15T09:40:48.8051488Z             {
2026-06-15T09:40:48.8051770Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8052112Z               "line": 5827
2026-06-15T09:40:48.8052399Z             },
2026-06-15T09:40:48.8052629Z             {
2026-06-15T09:40:48.8052929Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8053256Z               "line": 5885
2026-06-15T09:40:48.8053545Z             }
2026-06-15T09:40:48.8053851Z           ]
2026-06-15T09:40:48.8054074Z         },
2026-06-15T09:40:48.8054369Z         "int": {
2026-06-15T09:40:48.8054627Z           "complete": false,
2026-06-15T09:40:48.8054933Z           "evidence": []
2026-06-15T09:40:48.8055228Z         },
2026-06-15T09:40:48.8055468Z         "unit": {
2026-06-15T09:40:48.8055778Z           "complete": true,
2026-06-15T09:40:48.8056095Z           "evidence": [
2026-06-15T09:40:48.8056386Z             {
2026-06-15T09:40:48.8056691Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8057015Z               "line": 419
2026-06-15T09:40:48.8057335Z             },
2026-06-15T09:40:48.8057583Z             {
2026-06-15T09:40:48.8057840Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8058258Z               "line": 436
2026-06-15T09:40:48.8058523Z             },
2026-06-15T09:40:48.8058805Z             {
2026-06-15T09:40:48.8059167Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8059496Z               "line": 472
2026-06-15T09:40:48.8059815Z             },
2026-06-15T09:40:48.8060059Z             {
2026-06-15T09:40:48.8060368Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.8060736Z               "line": 516
2026-06-15T09:40:48.8061002Z             },
2026-06-15T09:40:48.8061296Z             {
2026-06-15T09:40:48.8061573Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8061911Z               "line": 7874
2026-06-15T09:40:48.8062183Z             },
2026-06-15T09:40:48.8062444Z             {
2026-06-15T09:40:48.8062740Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8063212Z               "line": 7956
2026-06-15T09:40:48.8063597Z             }
2026-06-15T09:40:48.8063872Z           ]
2026-06-15T09:40:48.8064105Z         }
2026-06-15T09:40:48.8064411Z       }
2026-06-15T09:40:48.8064648Z     },
2026-06-15T09:40:48.8064864Z     {
2026-06-15T09:40:48.8065273Z       "id": "REQ-CONV-1",
2026-06-15T09:40:48.8067071Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T09:40:48.8068535Z       "requiredStages": [
2026-06-15T09:40:48.8068804Z         "impl",
2026-06-15T09:40:48.8069241Z         "unit"
2026-06-15T09:40:48.8069513Z       ],
2026-06-15T09:40:48.8069750Z       "stages": {
2026-06-15T09:40:48.8070075Z         "doc": {
2026-06-15T09:40:48.8070328Z           "complete": false,
2026-06-15T09:40:48.8070610Z           "evidence": []
2026-06-15T09:40:48.8071048Z         },
2026-06-15T09:40:48.8071296Z         "impl": {
2026-06-15T09:40:48.8071629Z           "complete": true,
2026-06-15T09:40:48.8071898Z           "evidence": [
2026-06-15T09:40:48.8072161Z             {
2026-06-15T09:40:48.8072499Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8072843Z               "line": 787
2026-06-15T09:40:48.8073133Z             },
2026-06-15T09:40:48.8073391Z             {
2026-06-15T09:40:48.8073692Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.8074097Z               "line": 94
2026-06-15T09:40:48.8074372Z             },
2026-06-15T09:40:48.8074637Z             {
2026-06-15T09:40:48.8074932Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.8075281Z               "line": 345
2026-06-15T09:40:48.8075577Z             },
2026-06-15T09:40:48.8075843Z             {
2026-06-15T09:40:48.8076177Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.8076536Z               "line": 387
2026-06-15T09:40:48.8076797Z             },
2026-06-15T09:40:48.8077335Z             {
2026-06-15T09:40:48.8077631Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.8077935Z               "line": 472
2026-06-15T09:40:48.8078269Z             },
2026-06-15T09:40:48.8078509Z             {
2026-06-15T09:40:48.8078875Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8079265Z               "line": 667
2026-06-15T09:40:48.8079517Z             },
2026-06-15T09:40:48.8079821Z             {
2026-06-15T09:40:48.8080092Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8080436Z               "line": 693
2026-06-15T09:40:48.8080717Z             },
2026-06-15T09:40:48.8080988Z             {
2026-06-15T09:40:48.8081332Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.8081666Z               "line": 369
2026-06-15T09:40:48.8081958Z             },
2026-06-15T09:40:48.8082222Z             {
2026-06-15T09:40:48.8082501Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:40:48.8082872Z               "line": 19
2026-06-15T09:40:48.8083125Z             }
2026-06-15T09:40:48.8083431Z           ]
2026-06-15T09:40:48.8083693Z         },
2026-06-15T09:40:48.8083947Z         "int": {
2026-06-15T09:40:48.8084253Z           "complete": false,
2026-06-15T09:40:48.8084529Z           "evidence": []
2026-06-15T09:40:48.8084788Z         },
2026-06-15T09:40:48.8085082Z         "unit": {
2026-06-15T09:40:48.8085364Z           "complete": true,
2026-06-15T09:40:48.8085712Z           "evidence": [
2026-06-15T09:40:48.8085984Z             {
2026-06-15T09:40:48.8086237Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8086742Z               "line": 1263
2026-06-15T09:40:48.8087018Z             },
2026-06-15T09:40:48.8087381Z             {
2026-06-15T09:40:48.8087694Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:40:48.8088042Z               "line": 108
2026-06-15T09:40:48.8088367Z             },
2026-06-15T09:40:48.8088614Z             {
2026-06-15T09:40:48.8088915Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:40:48.8089331Z               "line": 134
2026-06-15T09:40:48.8090054Z             },
2026-06-15T09:40:48.8090342Z             {
2026-06-15T09:40:48.8090619Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T09:40:48.8091024Z               "line": 144
2026-06-15T09:40:48.8091301Z             }
2026-06-15T09:40:48.8091543Z           ]
2026-06-15T09:40:48.8091839Z         }
2026-06-15T09:40:48.8092078Z       }
2026-06-15T09:40:48.8100428Z     },
2026-06-15T09:40:48.8100628Z     {
2026-06-15T09:40:48.8100807Z       "id": "REQ-CONV-2",
2026-06-15T09:40:48.8102099Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T09:40:48.8103149Z       "requiredStages": [
2026-06-15T09:40:48.8103342Z         "impl",
2026-06-15T09:40:48.8103509Z         "unit"
2026-06-15T09:40:48.8103674Z       ],
2026-06-15T09:40:48.8103827Z       "stages": {
2026-06-15T09:40:48.8104003Z         "doc": {
2026-06-15T09:40:48.8104175Z           "complete": false,
2026-06-15T09:40:48.8104376Z           "evidence": []
2026-06-15T09:40:48.8104552Z         },
2026-06-15T09:40:48.8104714Z         "impl": {
2026-06-15T09:40:48.8104894Z           "complete": true,
2026-06-15T09:40:48.8105086Z           "evidence": [
2026-06-15T09:40:48.8105276Z             {
2026-06-15T09:40:48.8105480Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8105744Z               "line": 359
2026-06-15T09:40:48.8105918Z             },
2026-06-15T09:40:48.8106080Z             {
2026-06-15T09:40:48.8106284Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.8106550Z               "line": 119
2026-06-15T09:40:48.8106732Z             },
2026-06-15T09:40:48.8106893Z             {
2026-06-15T09:40:48.8107094Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8107338Z               "line": 789
2026-06-15T09:40:48.8107518Z             },
2026-06-15T09:40:48.8107676Z             {
2026-06-15T09:40:48.8107867Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8108119Z               "line": 800
2026-06-15T09:40:48.8108301Z             },
2026-06-15T09:40:48.8108449Z             {
2026-06-15T09:40:48.8108639Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8108887Z               "line": 334
2026-06-15T09:40:48.8109143Z             },
2026-06-15T09:40:48.8109301Z             {
2026-06-15T09:40:48.8109482Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8109711Z               "line": 2676
2026-06-15T09:40:48.8109897Z             },
2026-06-15T09:40:48.8110054Z             {
2026-06-15T09:40:48.8110227Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8110441Z               "line": 2692
2026-06-15T09:40:48.8110617Z             },
2026-06-15T09:40:48.8110775Z             {
2026-06-15T09:40:48.8110946Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8111154Z               "line": 2751
2026-06-15T09:40:48.8111338Z             }
2026-06-15T09:40:48.8111487Z           ]
2026-06-15T09:40:48.8111634Z         },
2026-06-15T09:40:48.8111792Z         "int": {
2026-06-15T09:40:48.8111967Z           "complete": false,
2026-06-15T09:40:48.8112164Z           "evidence": []
2026-06-15T09:40:48.8112507Z         },
2026-06-15T09:40:48.8112669Z         "unit": {
2026-06-15T09:40:48.8112845Z           "complete": true,
2026-06-15T09:40:48.8113136Z           "evidence": [
2026-06-15T09:40:48.8113318Z             {
2026-06-15T09:40:48.8113512Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8113761Z               "line": 889
2026-06-15T09:40:48.8113945Z             },
2026-06-15T09:40:48.8114102Z             {
2026-06-15T09:40:48.8114296Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8114539Z               "line": 1014
2026-06-15T09:40:48.8114716Z             },
2026-06-15T09:40:48.8114877Z             {
2026-06-15T09:40:48.8115084Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.8115332Z               "line": 215
2026-06-15T09:40:48.8115512Z             }
2026-06-15T09:40:48.8115670Z           ]
2026-06-15T09:40:48.8115836Z         }
2026-06-15T09:40:48.8115985Z       }
2026-06-15T09:40:48.8116141Z     },
2026-06-15T09:40:48.8116314Z     {
2026-06-15T09:40:48.8116474Z       "id": "REQ-DAEMON-1",
2026-06-15T09:40:48.8116748Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T09:40:48.8117044Z       "requiredStages": [
2026-06-15T09:40:48.8117231Z         "impl",
2026-06-15T09:40:48.8117396Z         "unit",
2026-06-15T09:40:48.8117560Z         "int"
2026-06-15T09:40:48.8117725Z       ],
2026-06-15T09:40:48.8117893Z       "stages": {
2026-06-15T09:40:48.8118060Z         "doc": {
2026-06-15T09:40:48.8118246Z           "complete": false,
2026-06-15T09:40:48.8118447Z           "evidence": []
2026-06-15T09:40:48.8118674Z         },
2026-06-15T09:40:48.8118834Z         "impl": {
2026-06-15T09:40:48.8119519Z           "complete": true,
2026-06-15T09:40:48.8119718Z           "evidence": [
2026-06-15T09:40:48.8119899Z             {
2026-06-15T09:40:48.8120086Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8120333Z               "line": 12
2026-06-15T09:40:48.8120519Z             },
2026-06-15T09:40:48.8120682Z             {
2026-06-15T09:40:48.8120872Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8121130Z               "line": 16
2026-06-15T09:40:48.8121306Z             },
2026-06-15T09:40:48.8121467Z             {
2026-06-15T09:40:48.8121653Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8121893Z               "line": 259
2026-06-15T09:40:48.8122076Z             },
2026-06-15T09:40:48.8122236Z             {
2026-06-15T09:40:48.8122428Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:40:48.8122653Z               "line": 15
2026-06-15T09:40:48.8122833Z             },
2026-06-15T09:40:48.8122991Z             {
2026-06-15T09:40:48.8123176Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T09:40:48.8123420Z               "line": 13
2026-06-15T09:40:48.8123602Z             }
2026-06-15T09:40:48.8123758Z           ]
2026-06-15T09:40:48.8123922Z         },
2026-06-15T09:40:48.8124082Z         "int": {
2026-06-15T09:40:48.8124255Z           "complete": true,
2026-06-15T09:40:48.8124453Z           "evidence": [
2026-06-15T09:40:48.8124624Z             {
2026-06-15T09:40:48.8124827Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:40:48.8125075Z               "line": 32
2026-06-15T09:40:48.8125248Z             }
2026-06-15T09:40:48.8125409Z           ]
2026-06-15T09:40:48.8125572Z         },
2026-06-15T09:40:48.8125733Z         "unit": {
2026-06-15T09:40:48.8125915Z           "complete": true,
2026-06-15T09:40:48.8126106Z           "evidence": [
2026-06-15T09:40:48.8126286Z             {
2026-06-15T09:40:48.8126493Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8126740Z               "line": 285
2026-06-15T09:40:48.8126925Z             },
2026-06-15T09:40:48.8127092Z             {
2026-06-15T09:40:48.8127304Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8127675Z               "line": 293
2026-06-15T09:40:48.8128014Z             },
2026-06-15T09:40:48.8128186Z             {
2026-06-15T09:40:48.8128500Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8128759Z               "line": 309
2026-06-15T09:40:48.8128934Z             },
2026-06-15T09:40:48.8129172Z             {
2026-06-15T09:40:48.8129365Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8129627Z               "line": 317
2026-06-15T09:40:48.8129806Z             },
2026-06-15T09:40:48.8129964Z             {
2026-06-15T09:40:48.8130154Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8130393Z               "line": 609
2026-06-15T09:40:48.8130573Z             },
2026-06-15T09:40:48.8130736Z             {
2026-06-15T09:40:48.8130917Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8131155Z               "line": 679
2026-06-15T09:40:48.8131342Z             },
2026-06-15T09:40:48.8131504Z             {
2026-06-15T09:40:48.8131694Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:40:48.8131789Z               "line": 106
2026-06-15T09:40:48.8131876Z             },
2026-06-15T09:40:48.8131958Z             {
2026-06-15T09:40:48.8132071Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T09:40:48.8132156Z               "line": 132
2026-06-15T09:40:48.8132232Z             }
2026-06-15T09:40:48.8132312Z           ]
2026-06-15T09:40:48.8132402Z         }
2026-06-15T09:40:48.8132491Z       }
2026-06-15T09:40:48.8132564Z     },
2026-06-15T09:40:48.8132646Z     {
2026-06-15T09:40:48.8132740Z       "id": "REQ-DAEMON-2",
2026-06-15T09:40:48.8132883Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T09:40:48.8132965Z       "requiredStages": [
2026-06-15T09:40:48.8133050Z         "impl",
2026-06-15T09:40:48.8133140Z         "unit",
2026-06-15T09:40:48.8133227Z         "int"
2026-06-15T09:40:48.8133313Z       ],
2026-06-15T09:40:48.8133393Z       "stages": {
2026-06-15T09:40:48.8133489Z         "doc": {
2026-06-15T09:40:48.8133579Z           "complete": true,
2026-06-15T09:40:48.8133679Z           "evidence": [
2026-06-15T09:40:48.8133765Z             {
2026-06-15T09:40:48.8133885Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T09:40:48.8133985Z               "line": 250
2026-06-15T09:40:48.8134065Z             }
2026-06-15T09:40:48.8134153Z           ]
2026-06-15T09:40:48.8134233Z         },
2026-06-15T09:40:48.8134313Z         "impl": {
2026-06-15T09:40:48.8134414Z           "complete": true,
2026-06-15T09:40:48.8134501Z           "evidence": [
2026-06-15T09:40:48.8134585Z             {
2026-06-15T09:40:48.8134691Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8134782Z               "line": 23
2026-06-15T09:40:48.8134867Z             },
2026-06-15T09:40:48.8134985Z             {
2026-06-15T09:40:48.8135161Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8135245Z               "line": 795
2026-06-15T09:40:48.8135335Z             },
2026-06-15T09:40:48.8135416Z             {
2026-06-15T09:40:48.8135531Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8135617Z               "line": 820
2026-06-15T09:40:48.8135707Z             },
2026-06-15T09:40:48.8135784Z             {
2026-06-15T09:40:48.8135894Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8135988Z               "line": 1026
2026-06-15T09:40:48.8136076Z             },
2026-06-15T09:40:48.8136156Z             {
2026-06-15T09:40:48.8136275Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8136361Z               "line": 32
2026-06-15T09:40:48.8136447Z             },
2026-06-15T09:40:48.8136532Z             {
2026-06-15T09:40:48.8136647Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8136724Z               "line": 549
2026-06-15T09:40:48.8136809Z             },
2026-06-15T09:40:48.8136890Z             {
2026-06-15T09:40:48.8137000Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8137194Z               "line": 1055
2026-06-15T09:40:48.8137359Z             },
2026-06-15T09:40:48.8137439Z             {
2026-06-15T09:40:48.8137551Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8137637Z               "line": 1342
2026-06-15T09:40:48.8137718Z             },
2026-06-15T09:40:48.8137793Z             {
2026-06-15T09:40:48.8137906Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:40:48.8137988Z               "line": 11
2026-06-15T09:40:48.8138070Z             },
2026-06-15T09:40:48.8138146Z             {
2026-06-15T09:40:48.8138260Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8138346Z               "line": 146
2026-06-15T09:40:48.8138427Z             },
2026-06-15T09:40:48.8138512Z             {
2026-06-15T09:40:48.8138613Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8138704Z               "line": 274
2026-06-15T09:40:48.8138780Z             },
2026-06-15T09:40:48.8138869Z             {
2026-06-15T09:40:48.8139038Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8139128Z               "line": 13
2026-06-15T09:40:48.8139209Z             },
2026-06-15T09:40:48.8139291Z             {
2026-06-15T09:40:48.8139404Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8139480Z               "line": 27
2026-06-15T09:40:48.8139562Z             },
2026-06-15T09:40:48.8139648Z             {
2026-06-15T09:40:48.8139762Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8139853Z               "line": 130
2026-06-15T09:40:48.8139930Z             },
2026-06-15T09:40:48.8140015Z             {
2026-06-15T09:40:48.8140124Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8140216Z               "line": 537
2026-06-15T09:40:48.8140292Z             },
2026-06-15T09:40:48.8140376Z             {
2026-06-15T09:40:48.8140490Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8140586Z               "line": 705
2026-06-15T09:40:48.8140677Z             },
2026-06-15T09:40:48.8140757Z             {
2026-06-15T09:40:48.8140872Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8140967Z               "line": 849
2026-06-15T09:40:48.8141048Z             },
2026-06-15T09:40:48.8141129Z             {
2026-06-15T09:40:48.8141245Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8141330Z               "line": 936
2026-06-15T09:40:48.8141415Z             },
2026-06-15T09:40:48.8141492Z             {
2026-06-15T09:40:48.8141606Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8141687Z               "line": 982
2026-06-15T09:40:48.8141773Z             },
2026-06-15T09:40:48.8141860Z             {
2026-06-15T09:40:48.8141983Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:40:48.8142068Z               "line": 10
2026-06-15T09:40:48.8142151Z             }
2026-06-15T09:40:48.8142231Z           ]
2026-06-15T09:40:48.8142311Z         },
2026-06-15T09:40:48.8142407Z         "int": {
2026-06-15T09:40:48.8142499Z           "complete": true,
2026-06-15T09:40:48.8142588Z           "evidence": [
2026-06-15T09:40:48.8142678Z             {
2026-06-15T09:40:48.8142792Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T09:40:48.8142887Z               "line": 17
2026-06-15T09:40:48.8142966Z             },
2026-06-15T09:40:48.8143047Z             {
2026-06-15T09:40:48.8143172Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:40:48.8143253Z               "line": 71
2026-06-15T09:40:48.8143333Z             },
2026-06-15T09:40:48.8143410Z             {
2026-06-15T09:40:48.8143539Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:40:48.8143619Z               "line": 91
2026-06-15T09:40:48.8143710Z             },
2026-06-15T09:40:48.8143788Z             {
2026-06-15T09:40:48.8144049Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:40:48.8144140Z               "line": 167
2026-06-15T09:40:48.8144306Z             },
2026-06-15T09:40:48.8144388Z             {
2026-06-15T09:40:48.8144497Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:40:48.8144583Z               "line": 209
2026-06-15T09:40:48.8144664Z             },
2026-06-15T09:40:48.8144746Z             {
2026-06-15T09:40:48.8144869Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T09:40:48.8144945Z               "line": 128
2026-06-15T09:40:48.8145032Z             },
2026-06-15T09:40:48.8145112Z             {
2026-06-15T09:40:48.8145231Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:40:48.8145318Z               "line": 59
2026-06-15T09:40:48.8145404Z             }
2026-06-15T09:40:48.8145493Z           ]
2026-06-15T09:40:48.8145573Z         },
2026-06-15T09:40:48.8145659Z         "unit": {
2026-06-15T09:40:48.8145754Z           "complete": true,
2026-06-15T09:40:48.8145848Z           "evidence": [
2026-06-15T09:40:48.8145923Z             {
2026-06-15T09:40:48.8146049Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:40:48.8146139Z               "line": 62
2026-06-15T09:40:48.8146219Z             },
2026-06-15T09:40:48.8146306Z             {
2026-06-15T09:40:48.8146411Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:40:48.8146501Z               "line": 76
2026-06-15T09:40:48.8146582Z             },
2026-06-15T09:40:48.8146669Z             {
2026-06-15T09:40:48.8146783Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T09:40:48.8146868Z               "line": 88
2026-06-15T09:40:48.8146950Z             },
2026-06-15T09:40:48.8147031Z             {
2026-06-15T09:40:48.8147150Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8147245Z               "line": 294
2026-06-15T09:40:48.8147322Z             },
2026-06-15T09:40:48.8147402Z             {
2026-06-15T09:40:48.8147516Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8147627Z               "line": 771
2026-06-15T09:40:48.8147707Z             },
2026-06-15T09:40:48.8147794Z             {
2026-06-15T09:40:48.8147909Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8147990Z               "line": 779
2026-06-15T09:40:48.8148079Z             },
2026-06-15T09:40:48.8148154Z             {
2026-06-15T09:40:48.8148269Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8148358Z               "line": 796
2026-06-15T09:40:48.8148443Z             },
2026-06-15T09:40:48.8148529Z             {
2026-06-15T09:40:48.8148635Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8148720Z               "line": 850
2026-06-15T09:40:48.8148800Z             },
2026-06-15T09:40:48.8148887Z             {
2026-06-15T09:40:48.8149073Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8149178Z               "line": 1053
2026-06-15T09:40:48.8149269Z             },
2026-06-15T09:40:48.8149349Z             {
2026-06-15T09:40:48.8149469Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8149560Z               "line": 1065
2026-06-15T09:40:48.8149640Z             },
2026-06-15T09:40:48.8149716Z             {
2026-06-15T09:40:48.8149832Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:40:48.8149931Z               "line": 110
2026-06-15T09:40:48.8150012Z             },
2026-06-15T09:40:48.8150098Z             {
2026-06-15T09:40:48.8150208Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:40:48.8150293Z               "line": 143
2026-06-15T09:40:48.8150369Z             }
2026-06-15T09:40:48.8150457Z           ]
2026-06-15T09:40:48.8150547Z         }
2026-06-15T09:40:48.8150622Z       }
2026-06-15T09:40:48.8150708Z     },
2026-06-15T09:40:48.8150791Z     {
2026-06-15T09:40:48.8150890Z       "id": "REQ-DAEMON-3",
2026-06-15T09:40:48.8151146Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T09:40:48.8151242Z       "requiredStages": [
2026-06-15T09:40:48.8151418Z         "impl",
2026-06-15T09:40:48.8151495Z         "unit",
2026-06-15T09:40:48.8151576Z         "int"
2026-06-15T09:40:48.8151646Z       ],
2026-06-15T09:40:48.8151738Z       "stages": {
2026-06-15T09:40:48.8151819Z         "doc": {
2026-06-15T09:40:48.8151909Z           "complete": false,
2026-06-15T09:40:48.8152009Z           "evidence": []
2026-06-15T09:40:48.8152086Z         },
2026-06-15T09:40:48.8152167Z         "impl": {
2026-06-15T09:40:48.8152248Z           "complete": true,
2026-06-15T09:40:48.8152333Z           "evidence": [
2026-06-15T09:40:48.8152415Z             {
2026-06-15T09:40:48.8152538Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8152628Z               "line": 14
2026-06-15T09:40:48.8152692Z             },
2026-06-15T09:40:48.8152777Z             {
2026-06-15T09:40:48.8152891Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:40:48.8152991Z               "line": 11
2026-06-15T09:40:48.8153083Z             },
2026-06-15T09:40:48.8153162Z             {
2026-06-15T09:40:48.8153276Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.8153357Z               "line": 270
2026-06-15T09:40:48.8153447Z             },
2026-06-15T09:40:48.8153526Z             {
2026-06-15T09:40:48.8153631Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8153718Z               "line": 1705
2026-06-15T09:40:48.8153795Z             },
2026-06-15T09:40:48.8153889Z             {
2026-06-15T09:40:48.8153989Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8154075Z               "line": 3795
2026-06-15T09:40:48.8154156Z             },
2026-06-15T09:40:48.8154242Z             {
2026-06-15T09:40:48.8154343Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8154423Z               "line": 3816
2026-06-15T09:40:48.8154508Z             }
2026-06-15T09:40:48.8154595Z           ]
2026-06-15T09:40:48.8154677Z         },
2026-06-15T09:40:48.8154757Z         "int": {
2026-06-15T09:40:48.8154861Z           "complete": true,
2026-06-15T09:40:48.8154948Z           "evidence": [
2026-06-15T09:40:48.8155038Z             {
2026-06-15T09:40:48.8155157Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.8155234Z               "line": 49
2026-06-15T09:40:48.8155316Z             },
2026-06-15T09:40:48.8155391Z             {
2026-06-15T09:40:48.8155515Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.8155597Z               "line": 439
2026-06-15T09:40:48.8155677Z             }
2026-06-15T09:40:48.8155763Z           ]
2026-06-15T09:40:48.8155844Z         },
2026-06-15T09:40:48.8155941Z         "unit": {
2026-06-15T09:40:48.8156030Z           "complete": true,
2026-06-15T09:40:48.8156124Z           "evidence": [
2026-06-15T09:40:48.8156206Z             {
2026-06-15T09:40:48.8156333Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8156432Z               "line": 767
2026-06-15T09:40:48.8156523Z             },
2026-06-15T09:40:48.8156609Z             {
2026-06-15T09:40:48.8156713Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8156808Z               "line": 8955
2026-06-15T09:40:48.8156886Z             }
2026-06-15T09:40:48.8156976Z           ]
2026-06-15T09:40:48.8157061Z         }
2026-06-15T09:40:48.8157142Z       }
2026-06-15T09:40:48.8157229Z     },
2026-06-15T09:40:48.8157310Z     {
2026-06-15T09:40:48.8157404Z       "id": "REQ-DAEMON-4",
2026-06-15T09:40:48.8157520Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T09:40:48.8157619Z       "requiredStages": [
2026-06-15T09:40:48.8157710Z         "impl",
2026-06-15T09:40:48.8157791Z         "unit",
2026-06-15T09:40:48.8157873Z         "int"
2026-06-15T09:40:48.8157958Z       ],
2026-06-15T09:40:48.8158048Z       "stages": {
2026-06-15T09:40:48.8158125Z         "doc": {
2026-06-15T09:40:48.8158296Z           "complete": false,
2026-06-15T09:40:48.8158392Z           "evidence": []
2026-06-15T09:40:48.8158474Z         },
2026-06-15T09:40:48.8158625Z         "impl": {
2026-06-15T09:40:48.8158714Z           "complete": true,
2026-06-15T09:40:48.8158806Z           "evidence": [
2026-06-15T09:40:48.8158885Z             {
2026-06-15T09:40:48.8159375Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8159471Z               "line": 414
2026-06-15T09:40:48.8159547Z             },
2026-06-15T09:40:48.8159633Z             {
2026-06-15T09:40:48.8159748Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8159838Z               "line": 479
2026-06-15T09:40:48.8159924Z             },
2026-06-15T09:40:48.8159999Z             {
2026-06-15T09:40:48.8160124Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8160205Z               "line": 501
2026-06-15T09:40:48.8160286Z             }
2026-06-15T09:40:48.8160367Z           ]
2026-06-15T09:40:48.8160449Z         },
2026-06-15T09:40:48.8160534Z         "int": {
2026-06-15T09:40:48.8160624Z           "complete": true,
2026-06-15T09:40:48.8160717Z           "evidence": [
2026-06-15T09:40:48.8160796Z             {
2026-06-15T09:40:48.8160925Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:40:48.8161007Z               "line": 37
2026-06-15T09:40:48.8161083Z             }
2026-06-15T09:40:48.8161168Z           ]
2026-06-15T09:40:48.8161250Z         },
2026-06-15T09:40:48.8161331Z         "unit": {
2026-06-15T09:40:48.8161417Z           "complete": true,
2026-06-15T09:40:48.8161501Z           "evidence": [
2026-06-15T09:40:48.8161581Z             {
2026-06-15T09:40:48.8161692Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8161774Z               "line": 428
2026-06-15T09:40:48.8161859Z             },
2026-06-15T09:40:48.8161940Z             {
2026-06-15T09:40:48.8162045Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8162140Z               "line": 907
2026-06-15T09:40:48.8162220Z             },
2026-06-15T09:40:48.8162303Z             {
2026-06-15T09:40:48.8162431Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8162516Z               "line": 977
2026-06-15T09:40:48.8162593Z             },
2026-06-15T09:40:48.8162675Z             {
2026-06-15T09:40:48.8162794Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8162883Z               "line": 1007
2026-06-15T09:40:48.8162966Z             },
2026-06-15T09:40:48.8163051Z             {
2026-06-15T09:40:48.8163165Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8163257Z               "line": 1040
2026-06-15T09:40:48.8163337Z             }
2026-06-15T09:40:48.8163417Z           ]
2026-06-15T09:40:48.8163498Z         }
2026-06-15T09:40:48.8163586Z       }
2026-06-15T09:40:48.8163681Z     },
2026-06-15T09:40:48.8163760Z     {
2026-06-15T09:40:48.8163860Z       "id": "REQ-DAEMON-5",
2026-06-15T09:40:48.8165307Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T09:40:48.8165416Z       "requiredStages": [
2026-06-15T09:40:48.8165499Z         "impl",
2026-06-15T09:40:48.8165580Z         "unit"
2026-06-15T09:40:48.8165670Z       ],
2026-06-15T09:40:48.8165746Z       "stages": {
2026-06-15T09:40:48.8165833Z         "doc": {
2026-06-15T09:40:48.8165918Z           "complete": false,
2026-06-15T09:40:48.8166013Z           "evidence": []
2026-06-15T09:40:48.8166094Z         },
2026-06-15T09:40:48.8166177Z         "impl": {
2026-06-15T09:40:48.8166270Z           "complete": true,
2026-06-15T09:40:48.8166482Z           "evidence": [
2026-06-15T09:40:48.8166576Z             {
2026-06-15T09:40:48.8172610Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8172944Z               "line": 476
2026-06-15T09:40:48.8173020Z             },
2026-06-15T09:40:48.8173105Z             {
2026-06-15T09:40:48.8173230Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8173311Z               "line": 769
2026-06-15T09:40:48.8173391Z             },
2026-06-15T09:40:48.8173473Z             {
2026-06-15T09:40:48.8173606Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8173697Z               "line": 782
2026-06-15T09:40:48.8173778Z             },
2026-06-15T09:40:48.8173855Z             {
2026-06-15T09:40:48.8173973Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8174059Z               "line": 800
2026-06-15T09:40:48.8174141Z             },
2026-06-15T09:40:48.8174226Z             {
2026-06-15T09:40:48.8174353Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8174449Z               "line": 841
2026-06-15T09:40:48.8174544Z             }
2026-06-15T09:40:48.8174633Z           ]
2026-06-15T09:40:48.8174718Z         },
2026-06-15T09:40:48.8174800Z         "int": {
2026-06-15T09:40:48.8174901Z           "complete": false,
2026-06-15T09:40:48.8174994Z           "evidence": []
2026-06-15T09:40:48.8175071Z         },
2026-06-15T09:40:48.8175158Z         "unit": {
2026-06-15T09:40:48.8175239Z           "complete": true,
2026-06-15T09:40:48.8175333Z           "evidence": [
2026-06-15T09:40:48.8175410Z             {
2026-06-15T09:40:48.8175529Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8175624Z               "line": 1189
2026-06-15T09:40:48.8175701Z             },
2026-06-15T09:40:48.8175778Z             {
2026-06-15T09:40:48.8175887Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8175981Z               "line": 1213
2026-06-15T09:40:48.8176064Z             },
2026-06-15T09:40:48.8176149Z             {
2026-06-15T09:40:48.8176273Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8176359Z               "line": 1239
2026-06-15T09:40:48.8176450Z             }
2026-06-15T09:40:48.8176521Z           ]
2026-06-15T09:40:48.8176606Z         }
2026-06-15T09:40:48.8176684Z       }
2026-06-15T09:40:48.8176770Z     },
2026-06-15T09:40:48.8176859Z     {
2026-06-15T09:40:48.8176950Z       "id": "REQ-DAEMON-6",
2026-06-15T09:40:48.8179022Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T09:40:48.8179135Z       "requiredStages": [
2026-06-15T09:40:48.8179226Z         "impl",
2026-06-15T09:40:48.8179318Z         "unit"
2026-06-15T09:40:48.8179392Z       ],
2026-06-15T09:40:48.8179478Z       "stages": {
2026-06-15T09:40:48.8179561Z         "doc": {
2026-06-15T09:40:48.8179651Z           "complete": false,
2026-06-15T09:40:48.8179740Z           "evidence": []
2026-06-15T09:40:48.8179821Z         },
2026-06-15T09:40:48.8179897Z         "impl": {
2026-06-15T09:40:48.8179983Z           "complete": true,
2026-06-15T09:40:48.8180076Z           "evidence": [
2026-06-15T09:40:48.8180152Z             {
2026-06-15T09:40:48.8180282Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8180363Z               "line": 426
2026-06-15T09:40:48.8180443Z             },
2026-06-15T09:40:48.8180524Z             {
2026-06-15T09:40:48.8180743Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8180916Z               "line": 457
2026-06-15T09:40:48.8180992Z             },
2026-06-15T09:40:48.8181077Z             {
2026-06-15T09:40:48.8181197Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8181282Z               "line": 55
2026-06-15T09:40:48.8181359Z             },
2026-06-15T09:40:48.8181440Z             {
2026-06-15T09:40:48.8181560Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8181650Z               "line": 70
2026-06-15T09:40:48.8181730Z             },
2026-06-15T09:40:48.8181808Z             {
2026-06-15T09:40:48.8181912Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8182007Z               "line": 1759
2026-06-15T09:40:48.8182088Z             },
2026-06-15T09:40:48.8182176Z             {
2026-06-15T09:40:48.8182283Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8182365Z               "line": 1785
2026-06-15T09:40:48.8182461Z             }
2026-06-15T09:40:48.8182542Z           ]
2026-06-15T09:40:48.8182645Z         },
2026-06-15T09:40:48.8182735Z         "int": {
2026-06-15T09:40:48.8182827Z           "complete": false,
2026-06-15T09:40:48.8182922Z           "evidence": []
2026-06-15T09:40:48.8183003Z         },
2026-06-15T09:40:48.8183093Z         "unit": {
2026-06-15T09:40:48.8183175Z           "complete": true,
2026-06-15T09:40:48.8183260Z           "evidence": [
2026-06-15T09:40:48.8183341Z             {
2026-06-15T09:40:48.8183457Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8183556Z               "line": 288
2026-06-15T09:40:48.8183632Z             },
2026-06-15T09:40:48.8183714Z             {
2026-06-15T09:40:48.8183823Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8183914Z               "line": 299
2026-06-15T09:40:48.8183994Z             },
2026-06-15T09:40:48.8184081Z             {
2026-06-15T09:40:48.8184209Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8184285Z               "line": 325
2026-06-15T09:40:48.8184372Z             },
2026-06-15T09:40:48.8184457Z             {
2026-06-15T09:40:48.8184571Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8184653Z               "line": 351
2026-06-15T09:40:48.8184735Z             }
2026-06-15T09:40:48.8184819Z           ]
2026-06-15T09:40:48.8184900Z         }
2026-06-15T09:40:48.8184980Z       }
2026-06-15T09:40:48.8185062Z     },
2026-06-15T09:40:48.8185141Z     {
2026-06-15T09:40:48.8185222Z       "id": "REQ-DAEMON-7",
2026-06-15T09:40:48.8186604Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T09:40:48.8186714Z       "requiredStages": [
2026-06-15T09:40:48.8186800Z         "impl",
2026-06-15T09:40:48.8186890Z         "unit"
2026-06-15T09:40:48.8186968Z       ],
2026-06-15T09:40:48.8187062Z       "stages": {
2026-06-15T09:40:48.8187148Z         "doc": {
2026-06-15T09:40:48.8187239Z           "complete": false,
2026-06-15T09:40:48.8187330Z           "evidence": []
2026-06-15T09:40:48.8187400Z         },
2026-06-15T09:40:48.8187486Z         "impl": {
2026-06-15T09:40:48.8187563Z           "complete": true,
2026-06-15T09:40:48.8187654Z           "evidence": [
2026-06-15T09:40:48.8187748Z             {
2026-06-15T09:40:48.8187857Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8187952Z               "line": 476
2026-06-15T09:40:48.8188032Z             },
2026-06-15T09:40:48.8188112Z             {
2026-06-15T09:40:48.8188232Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8188413Z               "line": 601
2026-06-15T09:40:48.8188580Z             },
2026-06-15T09:40:48.8188661Z             {
2026-06-15T09:40:48.8188770Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8188847Z               "line": 89
2026-06-15T09:40:48.8188933Z             },
2026-06-15T09:40:48.8189103Z             {
2026-06-15T09:40:48.8189214Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8189309Z               "line": 1706
2026-06-15T09:40:48.8189386Z             }
2026-06-15T09:40:48.8189462Z           ]
2026-06-15T09:40:48.8189544Z         },
2026-06-15T09:40:48.8189633Z         "int": {
2026-06-15T09:40:48.8189714Z           "complete": false,
2026-06-15T09:40:48.8189811Z           "evidence": []
2026-06-15T09:40:48.8189887Z         },
2026-06-15T09:40:48.8189967Z         "unit": {
2026-06-15T09:40:48.8190067Z           "complete": true,
2026-06-15T09:40:48.8190145Z           "evidence": [
2026-06-15T09:40:48.8190240Z             {
2026-06-15T09:40:48.8190343Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8190433Z               "line": 314
2026-06-15T09:40:48.8190514Z             },
2026-06-15T09:40:48.8190599Z             {
2026-06-15T09:40:48.8190703Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8190784Z               "line": 6548
2026-06-15T09:40:48.8190861Z             }
2026-06-15T09:40:48.8190946Z           ]
2026-06-15T09:40:48.8191032Z         }
2026-06-15T09:40:48.8191128Z       }
2026-06-15T09:40:48.8191199Z     },
2026-06-15T09:40:48.8191285Z     {
2026-06-15T09:40:48.8191375Z       "id": "REQ-DAEMON-8",
2026-06-15T09:40:48.8192324Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T09:40:48.8192430Z       "requiredStages": [
2026-06-15T09:40:48.8192510Z         "impl",
2026-06-15T09:40:48.8192600Z         "unit"
2026-06-15T09:40:48.8192683Z       ],
2026-06-15T09:40:48.8192774Z       "stages": {
2026-06-15T09:40:48.8192857Z         "doc": {
2026-06-15T09:40:48.8192954Z           "complete": false,
2026-06-15T09:40:48.8193045Z           "evidence": []
2026-06-15T09:40:48.8193121Z         },
2026-06-15T09:40:48.8193205Z         "impl": {
2026-06-15T09:40:48.8193300Z           "complete": true,
2026-06-15T09:40:48.8193392Z           "evidence": [
2026-06-15T09:40:48.8193473Z             {
2026-06-15T09:40:48.8193600Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8193692Z               "line": 376
2026-06-15T09:40:48.8193773Z             },
2026-06-15T09:40:48.8193858Z             {
2026-06-15T09:40:48.8193973Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8194068Z               "line": 56
2026-06-15T09:40:48.8194154Z             }
2026-06-15T09:40:48.8194240Z           ]
2026-06-15T09:40:48.8194322Z         },
2026-06-15T09:40:48.8194407Z         "int": {
2026-06-15T09:40:48.8194502Z           "complete": false,
2026-06-15T09:40:48.8194583Z           "evidence": []
2026-06-15T09:40:48.8194666Z         },
2026-06-15T09:40:48.8194745Z         "unit": {
2026-06-15T09:40:48.8194841Z           "complete": true,
2026-06-15T09:40:48.8194937Z           "evidence": [
2026-06-15T09:40:48.8195009Z             {
2026-06-15T09:40:48.8195127Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8195203Z               "line": 288
2026-06-15T09:40:48.8195291Z             },
2026-06-15T09:40:48.8195366Z             {
2026-06-15T09:40:48.8195483Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T09:40:48.8195574Z               "line": 325
2026-06-15T09:40:48.8195655Z             }
2026-06-15T09:40:48.8195743Z           ]
2026-06-15T09:40:48.8195819Z         }
2026-06-15T09:40:48.8196021Z       }
2026-06-15T09:40:48.8196101Z     },
2026-06-15T09:40:48.8196187Z     {
2026-06-15T09:40:48.8196382Z       "id": "REQ-DAEMON-9",
2026-06-15T09:40:48.8203243Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T09:40:48.8203366Z       "requiredStages": [
2026-06-15T09:40:48.8203476Z         "impl",
2026-06-15T09:40:48.8203563Z         "unit"
2026-06-15T09:40:48.8203653Z       ],
2026-06-15T09:40:48.8203742Z       "stages": {
2026-06-15T09:40:48.8203827Z         "doc": {
2026-06-15T09:40:48.8203923Z           "complete": false,
2026-06-15T09:40:48.8204005Z           "evidence": []
2026-06-15T09:40:48.8204089Z         },
2026-06-15T09:40:48.8204166Z         "impl": {
2026-06-15T09:40:48.8204262Z           "complete": true,
2026-06-15T09:40:48.8204353Z           "evidence": [
2026-06-15T09:40:48.8204423Z             {
2026-06-15T09:40:48.8204563Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8204643Z               "line": 262
2026-06-15T09:40:48.8204728Z             },
2026-06-15T09:40:48.8204809Z             {
2026-06-15T09:40:48.8204930Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8205025Z               "line": 600
2026-06-15T09:40:48.8205105Z             },
2026-06-15T09:40:48.8205187Z             {
2026-06-15T09:40:48.8205296Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8205396Z               "line": 190
2026-06-15T09:40:48.8205478Z             },
2026-06-15T09:40:48.8205560Z             {
2026-06-15T09:40:48.8205677Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8205759Z               "line": 275
2026-06-15T09:40:48.8205841Z             },
2026-06-15T09:40:48.8205912Z             {
2026-06-15T09:40:48.8206039Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8206130Z               "line": 312
2026-06-15T09:40:48.8206215Z             },
2026-06-15T09:40:48.8206303Z             {
2026-06-15T09:40:48.8206412Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8206514Z               "line": 1814
2026-06-15T09:40:48.8206590Z             }
2026-06-15T09:40:48.8206680Z           ]
2026-06-15T09:40:48.8206761Z         },
2026-06-15T09:40:48.8206852Z         "int": {
2026-06-15T09:40:48.8206957Z           "complete": false,
2026-06-15T09:40:48.8207037Z           "evidence": []
2026-06-15T09:40:48.8207134Z         },
2026-06-15T09:40:48.8207219Z         "unit": {
2026-06-15T09:40:48.8207309Z           "complete": true,
2026-06-15T09:40:48.8207391Z           "evidence": [
2026-06-15T09:40:48.8207468Z             {
2026-06-15T09:40:48.8207596Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8207677Z               "line": 723
2026-06-15T09:40:48.8207754Z             },
2026-06-15T09:40:48.8207834Z             {
2026-06-15T09:40:48.8207939Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8208020Z               "line": 8820
2026-06-15T09:40:48.8208107Z             }
2026-06-15T09:40:48.8208187Z           ]
2026-06-15T09:40:48.8208268Z         }
2026-06-15T09:40:48.8208345Z       }
2026-06-15T09:40:48.8208427Z     },
2026-06-15T09:40:48.8208506Z     {
2026-06-15T09:40:48.8208602Z       "id": "REQ-DOCS-1",
2026-06-15T09:40:48.8208802Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T09:40:48.8209133Z       "requiredStages": [
2026-06-15T09:40:48.8209304Z         "doc",
2026-06-15T09:40:48.8209386Z         "impl"
2026-06-15T09:40:48.8209467Z       ],
2026-06-15T09:40:48.8209562Z       "stages": {
2026-06-15T09:40:48.8209643Z         "doc": {
2026-06-15T09:40:48.8209734Z           "complete": true,
2026-06-15T09:40:48.8209824Z           "evidence": [
2026-06-15T09:40:48.8209891Z             {
2026-06-15T09:40:48.8209997Z               "path": "docs-site/src/index.md",
2026-06-15T09:40:48.8210087Z               "line": 50
2026-06-15T09:40:48.8210162Z             }
2026-06-15T09:40:48.8210238Z           ]
2026-06-15T09:40:48.8210321Z         },
2026-06-15T09:40:48.8210406Z         "impl": {
2026-06-15T09:40:48.8210487Z           "complete": true,
2026-06-15T09:40:48.8210568Z           "evidence": [
2026-06-15T09:40:48.8210650Z             {
2026-06-15T09:40:48.8210782Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T09:40:48.8210868Z               "line": 12
2026-06-15T09:40:48.8210951Z             },
2026-06-15T09:40:48.8211040Z             {
2026-06-15T09:40:48.8211145Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.8211227Z               "line": 14
2026-06-15T09:40:48.8211299Z             }
2026-06-15T09:40:48.8211383Z           ]
2026-06-15T09:40:48.8211463Z         },
2026-06-15T09:40:48.8211539Z         "int": {
2026-06-15T09:40:48.8211639Z           "complete": false,
2026-06-15T09:40:48.8211719Z           "evidence": []
2026-06-15T09:40:48.8211799Z         },
2026-06-15T09:40:48.8211880Z         "unit": {
2026-06-15T09:40:48.8211977Z           "complete": false,
2026-06-15T09:40:48.8212062Z           "evidence": []
2026-06-15T09:40:48.8212142Z         }
2026-06-15T09:40:48.8212234Z       }
2026-06-15T09:40:48.8212311Z     },
2026-06-15T09:40:48.8212386Z     {
2026-06-15T09:40:48.8212471Z       "id": "REQ-DOCS-2",
2026-06-15T09:40:48.8212625Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T09:40:48.8212725Z       "requiredStages": [
2026-06-15T09:40:48.8212820Z         "doc",
2026-06-15T09:40:48.8212901Z         "int"
2026-06-15T09:40:48.8212977Z       ],
2026-06-15T09:40:48.8213072Z       "stages": {
2026-06-15T09:40:48.8213158Z         "doc": {
2026-06-15T09:40:48.8213254Z           "complete": true,
2026-06-15T09:40:48.8213330Z           "evidence": [
2026-06-15T09:40:48.8213415Z             {
2026-06-15T09:40:48.8213588Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T09:40:48.8213668Z               "line": 3
2026-06-15T09:40:48.8213749Z             },
2026-06-15T09:40:48.8213827Z             {
2026-06-15T09:40:48.8213974Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T09:40:48.8214055Z               "line": 3
2026-06-15T09:40:48.8214132Z             },
2026-06-15T09:40:48.8214218Z             {
2026-06-15T09:40:48.8214344Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T09:40:48.8214449Z               "line": 3
2026-06-15T09:40:48.8214527Z             }
2026-06-15T09:40:48.8214631Z           ]
2026-06-15T09:40:48.8214711Z         },
2026-06-15T09:40:48.8214798Z         "impl": {
2026-06-15T09:40:48.8214893Z           "complete": false,
2026-06-15T09:40:48.8214969Z           "evidence": []
2026-06-15T09:40:48.8215050Z         },
2026-06-15T09:40:48.8215132Z         "int": {
2026-06-15T09:40:48.8215227Z           "complete": true,
2026-06-15T09:40:48.8215307Z           "evidence": [
2026-06-15T09:40:48.8215389Z             {
2026-06-15T09:40:48.8215514Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:40:48.8215599Z               "line": 14
2026-06-15T09:40:48.8215670Z             }
2026-06-15T09:40:48.8215743Z           ]
2026-06-15T09:40:48.8215824Z         },
2026-06-15T09:40:48.8215904Z         "unit": {
2026-06-15T09:40:48.8215994Z           "complete": false,
2026-06-15T09:40:48.8216091Z           "evidence": []
2026-06-15T09:40:48.8216276Z         }
2026-06-15T09:40:48.8216352Z       }
2026-06-15T09:40:48.8216435Z     },
2026-06-15T09:40:48.8216585Z     {
2026-06-15T09:40:48.8216670Z       "id": "REQ-DOCS-3",
2026-06-15T09:40:48.8216907Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T09:40:48.8217007Z       "requiredStages": [
2026-06-15T09:40:48.8217088Z         "doc"
2026-06-15T09:40:48.8217174Z       ],
2026-06-15T09:40:48.8217254Z       "stages": {
2026-06-15T09:40:48.8217345Z         "doc": {
2026-06-15T09:40:48.8217436Z           "complete": true,
2026-06-15T09:40:48.8217526Z           "evidence": [
2026-06-15T09:40:48.8217612Z             {
2026-06-15T09:40:48.8217718Z               "path": "docs-site/src/index.md",
2026-06-15T09:40:48.8217813Z               "line": 42
2026-06-15T09:40:48.8217893Z             }
2026-06-15T09:40:48.8217971Z           ]
2026-06-15T09:40:48.8218052Z         },
2026-06-15T09:40:48.8218133Z         "impl": {
2026-06-15T09:40:48.8218232Z           "complete": false,
2026-06-15T09:40:48.8218324Z           "evidence": []
2026-06-15T09:40:48.8218413Z         },
2026-06-15T09:40:48.8218499Z         "int": {
2026-06-15T09:40:48.8218585Z           "complete": false,
2026-06-15T09:40:48.8218667Z           "evidence": []
2026-06-15T09:40:48.8218752Z         },
2026-06-15T09:40:48.8218828Z         "unit": {
2026-06-15T09:40:48.8218910Z           "complete": false,
2026-06-15T09:40:48.8219080Z           "evidence": []
2026-06-15T09:40:48.8219152Z         }
2026-06-15T09:40:48.8219235Z       }
2026-06-15T09:40:48.8219316Z     },
2026-06-15T09:40:48.8219395Z     {
2026-06-15T09:40:48.8219490Z       "id": "REQ-DOCS-4",
2026-06-15T09:40:48.8219685Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T09:40:48.8219774Z       "requiredStages": [
2026-06-15T09:40:48.8219854Z         "doc",
2026-06-15T09:40:48.8219941Z         "impl",
2026-06-15T09:40:48.8220023Z         "unit"
2026-06-15T09:40:48.8220107Z       ],
2026-06-15T09:40:48.8220203Z       "stages": {
2026-06-15T09:40:48.8220284Z         "doc": {
2026-06-15T09:40:48.8220379Z           "complete": true,
2026-06-15T09:40:48.8220460Z           "evidence": [
2026-06-15T09:40:48.8220542Z             {
2026-06-15T09:40:48.8220647Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T09:40:48.8220732Z               "line": 35
2026-06-15T09:40:48.8220823Z             }
2026-06-15T09:40:48.8220895Z           ]
2026-06-15T09:40:48.8221004Z         },
2026-06-15T09:40:48.8221090Z         "impl": {
2026-06-15T09:40:48.8221186Z           "complete": true,
2026-06-15T09:40:48.8221267Z           "evidence": [
2026-06-15T09:40:48.8221347Z             {
2026-06-15T09:40:48.8221477Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8221563Z               "line": 604
2026-06-15T09:40:48.8221647Z             },
2026-06-15T09:40:48.8221724Z             {
2026-06-15T09:40:48.8221840Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.8221915Z               "line": 15
2026-06-15T09:40:48.8222009Z             }
2026-06-15T09:40:48.8222094Z           ]
2026-06-15T09:40:48.8222181Z         },
2026-06-15T09:40:48.8222270Z         "int": {
2026-06-15T09:40:48.8222359Z           "complete": false,
2026-06-15T09:40:48.8222450Z           "evidence": []
2026-06-15T09:40:48.8222527Z         },
2026-06-15T09:40:48.8222622Z         "unit": {
2026-06-15T09:40:48.8222707Z           "complete": true,
2026-06-15T09:40:48.8222784Z           "evidence": [
2026-06-15T09:40:48.8222861Z             {
2026-06-15T09:40:48.8222979Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8223070Z               "line": 1197
2026-06-15T09:40:48.8223152Z             }
2026-06-15T09:40:48.8223233Z           ]
2026-06-15T09:40:48.8223318Z         }
2026-06-15T09:40:48.8223399Z       }
2026-06-15T09:40:48.8223476Z     },
2026-06-15T09:40:48.8223552Z     {
2026-06-15T09:40:48.8223632Z       "id": "REQ-DOCS-5",
2026-06-15T09:40:48.8223810Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T09:40:48.8224019Z       "requiredStages": [
2026-06-15T09:40:48.8224191Z         "impl",
2026-06-15T09:40:48.8224272Z         "int"
2026-06-15T09:40:48.8224349Z       ],
2026-06-15T09:40:48.8224430Z       "stages": {
2026-06-15T09:40:48.8224524Z         "doc": {
2026-06-15T09:40:48.8224629Z           "complete": false,
2026-06-15T09:40:48.8224764Z           "evidence": []
2026-06-15T09:40:48.8224886Z         },
2026-06-15T09:40:48.8224995Z         "impl": {
2026-06-15T09:40:48.8225115Z           "complete": true,
2026-06-15T09:40:48.8225229Z           "evidence": [
2026-06-15T09:40:48.8225329Z             {
2026-06-15T09:40:48.8225544Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8225673Z               "line": 605
2026-06-15T09:40:48.8225826Z             },
2026-06-15T09:40:48.8225915Z             {
2026-06-15T09:40:48.8226040Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.8226145Z               "line": 113
2026-06-15T09:40:48.8226230Z             }
2026-06-15T09:40:48.8226313Z           ]
2026-06-15T09:40:48.8226426Z         },
2026-06-15T09:40:48.8226526Z         "int": {
2026-06-15T09:40:48.8226613Z           "complete": true,
2026-06-15T09:40:48.8226703Z           "evidence": [
2026-06-15T09:40:48.8226783Z             {
2026-06-15T09:40:48.8226894Z               "path": ".github/workflows/ci.yml",
2026-06-15T09:40:48.8226985Z               "line": 107
2026-06-15T09:40:48.8227055Z             },
2026-06-15T09:40:48.8227130Z             {
2026-06-15T09:40:48.8227245Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8227345Z               "line": 1234
2026-06-15T09:40:48.8227438Z             }
2026-06-15T09:40:48.8227519Z           ]
2026-06-15T09:40:48.8227596Z         },
2026-06-15T09:40:48.8227682Z         "unit": {
2026-06-15T09:40:48.8227776Z           "complete": false,
2026-06-15T09:40:48.8227862Z           "evidence": []
2026-06-15T09:40:48.8227949Z         }
2026-06-15T09:40:48.8228030Z       }
2026-06-15T09:40:48.8228115Z     },
2026-06-15T09:40:48.8228196Z     {
2026-06-15T09:40:48.8228283Z       "id": "REQ-DOCS-6",
2026-06-15T09:40:48.8228612Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T09:40:48.8228702Z       "requiredStages": [
2026-06-15T09:40:48.8228792Z         "impl",
2026-06-15T09:40:48.8228869Z         "unit",
2026-06-15T09:40:48.8229036Z         "int"
2026-06-15T09:40:48.8229140Z       ],
2026-06-15T09:40:48.8229237Z       "stages": {
2026-06-15T09:40:48.8229326Z         "doc": {
2026-06-15T09:40:48.8229407Z           "complete": true,
2026-06-15T09:40:48.8229495Z           "evidence": [
2026-06-15T09:40:48.8229576Z             {
2026-06-15T09:40:48.8229717Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T09:40:48.8229804Z               "line": 4
2026-06-15T09:40:48.8229886Z             }
2026-06-15T09:40:48.8229974Z           ]
2026-06-15T09:40:48.8230055Z         },
2026-06-15T09:40:48.8230150Z         "impl": {
2026-06-15T09:40:48.8230236Z           "complete": true,
2026-06-15T09:40:48.8230319Z           "evidence": [
2026-06-15T09:40:48.8230400Z             {
2026-06-15T09:40:48.8230501Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8230588Z               "line": 4697
2026-06-15T09:40:48.8230658Z             }
2026-06-15T09:40:48.8230739Z           ]
2026-06-15T09:40:48.8230817Z         },
2026-06-15T09:40:48.8230897Z         "int": {
2026-06-15T09:40:48.8230982Z           "complete": true,
2026-06-15T09:40:48.8231073Z           "evidence": [
2026-06-15T09:40:48.8231160Z             {
2026-06-15T09:40:48.8231278Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:40:48.8231364Z               "line": 39
2026-06-15T09:40:48.8231446Z             }
2026-06-15T09:40:48.8231526Z           ]
2026-06-15T09:40:48.8231602Z         },
2026-06-15T09:40:48.8231683Z         "unit": {
2026-06-15T09:40:48.8231907Z           "complete": true,
2026-06-15T09:40:48.8231984Z           "evidence": [
2026-06-15T09:40:48.8232184Z             {
2026-06-15T09:40:48.8232284Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8232371Z               "line": 8982
2026-06-15T09:40:48.8232457Z             }
2026-06-15T09:40:48.8232531Z           ]
2026-06-15T09:40:48.8232612Z         }
2026-06-15T09:40:48.8232698Z       }
2026-06-15T09:40:48.8232783Z     },
2026-06-15T09:40:48.8232853Z     {
2026-06-15T09:40:48.8232952Z       "id": "REQ-ELEVATE-1",
2026-06-15T09:40:48.8236146Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T09:40:48.8236286Z       "requiredStages": [
2026-06-15T09:40:48.8236414Z         "doc",
2026-06-15T09:40:48.8236524Z         "impl",
2026-06-15T09:40:48.8236634Z         "unit"
2026-06-15T09:40:48.8236747Z       ],
2026-06-15T09:40:48.8236863Z       "stages": {
2026-06-15T09:40:48.8236991Z         "doc": {
2026-06-15T09:40:48.8237134Z           "complete": true,
2026-06-15T09:40:48.8237278Z           "evidence": [
2026-06-15T09:40:48.8237411Z             {
2026-06-15T09:40:48.8237517Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8237620Z               "line": 629
2026-06-15T09:40:48.8237695Z             }
2026-06-15T09:40:48.8237781Z           ]
2026-06-15T09:40:48.8237867Z         },
2026-06-15T09:40:48.8237952Z         "impl": {
2026-06-15T09:40:48.8238060Z           "complete": true,
2026-06-15T09:40:48.8238146Z           "evidence": [
2026-06-15T09:40:48.8238237Z             {
2026-06-15T09:40:48.8238346Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8238441Z               "line": 3132
2026-06-15T09:40:48.8238519Z             },
2026-06-15T09:40:48.8238600Z             {
2026-06-15T09:40:48.8238699Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8238781Z               "line": 3177
2026-06-15T09:40:48.8238862Z             },
2026-06-15T09:40:48.8239367Z             {
2026-06-15T09:40:48.8239572Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8239657Z               "line": 3239
2026-06-15T09:40:48.8239745Z             },
2026-06-15T09:40:48.8239835Z             {
2026-06-15T09:40:48.8239949Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8240045Z               "line": 92
2026-06-15T09:40:48.8240121Z             },
2026-06-15T09:40:48.8240206Z             {
2026-06-15T09:40:48.8240306Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8240393Z               "line": 148
2026-06-15T09:40:48.8240474Z             }
2026-06-15T09:40:48.8240549Z           ]
2026-06-15T09:40:48.8240634Z         },
2026-06-15T09:40:48.8240720Z         "int": {
2026-06-15T09:40:48.8240814Z           "complete": false,
2026-06-15T09:40:48.8240894Z           "evidence": []
2026-06-15T09:40:48.8240984Z         },
2026-06-15T09:40:48.8241086Z         "unit": {
2026-06-15T09:40:48.8241167Z           "complete": true,
2026-06-15T09:40:48.8241251Z           "evidence": [
2026-06-15T09:40:48.8241333Z             {
2026-06-15T09:40:48.8241566Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8241725Z               "line": 442
2026-06-15T09:40:48.8241815Z             },
2026-06-15T09:40:48.8241895Z             {
2026-06-15T09:40:48.8241996Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8242086Z               "line": 460
2026-06-15T09:40:48.8242163Z             }
2026-06-15T09:40:48.8242239Z           ]
2026-06-15T09:40:48.8242316Z         }
2026-06-15T09:40:48.8242411Z       }
2026-06-15T09:40:48.8242496Z     },
2026-06-15T09:40:48.8242573Z     {
2026-06-15T09:40:48.8242669Z       "id": "REQ-EP-1",
2026-06-15T09:40:48.8242796Z       "title": "Day-one endpoint types; open type system",
2026-06-15T09:40:48.8242892Z       "requiredStages": [
2026-06-15T09:40:48.8242974Z         "impl",
2026-06-15T09:40:48.8243059Z         "unit"
2026-06-15T09:40:48.8243139Z       ],
2026-06-15T09:40:48.8243224Z       "stages": {
2026-06-15T09:40:48.8243306Z         "doc": {
2026-06-15T09:40:48.8243399Z           "complete": false,
2026-06-15T09:40:48.8243484Z           "evidence": []
2026-06-15T09:40:48.8243571Z         },
2026-06-15T09:40:48.8243647Z         "impl": {
2026-06-15T09:40:48.8243733Z           "complete": true,
2026-06-15T09:40:48.8243809Z           "evidence": [
2026-06-15T09:40:48.8243895Z             {
2026-06-15T09:40:48.8244014Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8244094Z               "line": 77
2026-06-15T09:40:48.8244175Z             },
2026-06-15T09:40:48.8244263Z             {
2026-06-15T09:40:48.8244377Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8244462Z               "line": 94
2026-06-15T09:40:48.8244544Z             }
2026-06-15T09:40:48.8244629Z           ]
2026-06-15T09:40:48.8244710Z         },
2026-06-15T09:40:48.8244791Z         "int": {
2026-06-15T09:40:48.8244888Z           "complete": false,
2026-06-15T09:40:48.8244972Z           "evidence": []
2026-06-15T09:40:48.8245053Z         },
2026-06-15T09:40:48.8245134Z         "unit": {
2026-06-15T09:40:48.8245217Z           "complete": true,
2026-06-15T09:40:48.8245315Z           "evidence": [
2026-06-15T09:40:48.8245387Z             {
2026-06-15T09:40:48.8245498Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8245593Z               "line": 161
2026-06-15T09:40:48.8245673Z             },
2026-06-15T09:40:48.8245759Z             {
2026-06-15T09:40:48.8245870Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8245949Z               "line": 178
2026-06-15T09:40:48.8246035Z             }
2026-06-15T09:40:48.8246121Z           ]
2026-06-15T09:40:48.8246202Z         }
2026-06-15T09:40:48.8246283Z       }
2026-06-15T09:40:48.8246364Z     },
2026-06-15T09:40:48.8246440Z     {
2026-06-15T09:40:48.8246536Z       "id": "REQ-EP-2",
2026-06-15T09:40:48.8246697Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T09:40:48.8246794Z       "requiredStages": [
2026-06-15T09:40:48.8246889Z         "impl",
2026-06-15T09:40:48.8246974Z         "unit"
2026-06-15T09:40:48.8247070Z       ],
2026-06-15T09:40:48.8247156Z       "stages": {
2026-06-15T09:40:48.8247246Z         "doc": {
2026-06-15T09:40:48.8247336Z           "complete": false,
2026-06-15T09:40:48.8247428Z           "evidence": []
2026-06-15T09:40:48.8247518Z         },
2026-06-15T09:40:48.8247599Z         "impl": {
2026-06-15T09:40:48.8247699Z           "complete": true,
2026-06-15T09:40:48.8247786Z           "evidence": [
2026-06-15T09:40:48.8247870Z             {
2026-06-15T09:40:48.8247985Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8248067Z               "line": 114
2026-06-15T09:40:48.8248152Z             },
2026-06-15T09:40:48.8248228Z             {
2026-06-15T09:40:48.8248351Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8248427Z               "line": 131
2026-06-15T09:40:48.8248507Z             },
2026-06-15T09:40:48.8252809Z             {
2026-06-15T09:40:48.8253133Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8253323Z               "line": 138
2026-06-15T09:40:48.8253400Z             }
2026-06-15T09:40:48.8253487Z           ]
2026-06-15T09:40:48.8253568Z         },
2026-06-15T09:40:48.8253652Z         "int": {
2026-06-15T09:40:48.8253737Z           "complete": false,
2026-06-15T09:40:48.8253833Z           "evidence": []
2026-06-15T09:40:48.8253918Z         },
2026-06-15T09:40:48.8253997Z         "unit": {
2026-06-15T09:40:48.8254097Z           "complete": true,
2026-06-15T09:40:48.8254174Z           "evidence": [
2026-06-15T09:40:48.8254270Z             {
2026-06-15T09:40:48.8254397Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8254484Z               "line": 190
2026-06-15T09:40:48.8254565Z             },
2026-06-15T09:40:48.8254645Z             {
2026-06-15T09:40:48.8254775Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8254856Z               "line": 208
2026-06-15T09:40:48.8254947Z             },
2026-06-15T09:40:48.8255027Z             {
2026-06-15T09:40:48.8255147Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T09:40:48.8255237Z               "line": 221
2026-06-15T09:40:48.8255312Z             }
2026-06-15T09:40:48.8255394Z           ]
2026-06-15T09:40:48.8255477Z         }
2026-06-15T09:40:48.8255561Z       }
2026-06-15T09:40:48.8255637Z     },
2026-06-15T09:40:48.8255719Z     {
2026-06-15T09:40:48.8255815Z       "id": "REQ-EP-3",
2026-06-15T09:40:48.8255990Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T09:40:48.8256092Z       "requiredStages": [
2026-06-15T09:40:48.8256176Z         "impl",
2026-06-15T09:40:48.8256262Z         "unit"
2026-06-15T09:40:48.8256344Z       ],
2026-06-15T09:40:48.8256440Z       "stages": {
2026-06-15T09:40:48.8256528Z         "doc": {
2026-06-15T09:40:48.8256619Z           "complete": false,
2026-06-15T09:40:48.8256709Z           "evidence": []
2026-06-15T09:40:48.8256801Z         },
2026-06-15T09:40:48.8256890Z         "impl": {
2026-06-15T09:40:48.8256990Z           "complete": true,
2026-06-15T09:40:48.8257086Z           "evidence": [
2026-06-15T09:40:48.8257172Z             {
2026-06-15T09:40:48.8257290Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8257378Z               "line": 31
2026-06-15T09:40:48.8257453Z             },
2026-06-15T09:40:48.8257538Z             {
2026-06-15T09:40:48.8257644Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8257735Z               "line": 49
2026-06-15T09:40:48.8257816Z             }
2026-06-15T09:40:48.8257896Z           ]
2026-06-15T09:40:48.8257978Z         },
2026-06-15T09:40:48.8258059Z         "int": {
2026-06-15T09:40:48.8258159Z           "complete": false,
2026-06-15T09:40:48.8258240Z           "evidence": []
2026-06-15T09:40:48.8258327Z         },
2026-06-15T09:40:48.8258412Z         "unit": {
2026-06-15T09:40:48.8258502Z           "complete": true,
2026-06-15T09:40:48.8258603Z           "evidence": [
2026-06-15T09:40:48.8258684Z             {
2026-06-15T09:40:48.8258802Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8258878Z               "line": 156
2026-06-15T09:40:48.8259067Z             },
2026-06-15T09:40:48.8259148Z             {
2026-06-15T09:40:48.8259257Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8259348Z               "line": 164
2026-06-15T09:40:48.8259419Z             },
2026-06-15T09:40:48.8259504Z             {
2026-06-15T09:40:48.8259625Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8259701Z               "line": 177
2026-06-15T09:40:48.8259786Z             },
2026-06-15T09:40:48.8259867Z             {
2026-06-15T09:40:48.8259987Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8260072Z               "line": 200
2026-06-15T09:40:48.8260153Z             },
2026-06-15T09:40:48.8260231Z             {
2026-06-15T09:40:48.8260454Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8260540Z               "line": 216
2026-06-15T09:40:48.8260707Z             },
2026-06-15T09:40:48.8260787Z             {
2026-06-15T09:40:48.8260898Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T09:40:48.8260978Z               "line": 233
2026-06-15T09:40:48.8261078Z             }
2026-06-15T09:40:48.8261175Z           ]
2026-06-15T09:40:48.8261256Z         }
2026-06-15T09:40:48.8261340Z       }
2026-06-15T09:40:48.8261426Z     },
2026-06-15T09:40:48.8261494Z     {
2026-06-15T09:40:48.8261589Z       "id": "REQ-EP-4",
2026-06-15T09:40:48.8261726Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T09:40:48.8261821Z       "requiredStages": [
2026-06-15T09:40:48.8261916Z         "impl",
2026-06-15T09:40:48.8261991Z         "unit"
2026-06-15T09:40:48.8262071Z       ],
2026-06-15T09:40:48.8262158Z       "stages": {
2026-06-15T09:40:48.8262244Z         "doc": {
2026-06-15T09:40:48.8262353Z           "complete": false,
2026-06-15T09:40:48.8262443Z           "evidence": []
2026-06-15T09:40:48.8262535Z         },
2026-06-15T09:40:48.8262620Z         "impl": {
2026-06-15T09:40:48.8262705Z           "complete": true,
2026-06-15T09:40:48.8262793Z           "evidence": [
2026-06-15T09:40:48.8262878Z             {
2026-06-15T09:40:48.8262992Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8263078Z               "line": 717
2026-06-15T09:40:48.8263164Z             },
2026-06-15T09:40:48.8263244Z             {
2026-06-15T09:40:48.8263359Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8263441Z               "line": 1048
2026-06-15T09:40:48.8263536Z             },
2026-06-15T09:40:48.8263621Z             {
2026-06-15T09:40:48.8263727Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8263818Z               "line": 1359
2026-06-15T09:40:48.8263902Z             },
2026-06-15T09:40:48.8263979Z             {
2026-06-15T09:40:48.8264099Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8264203Z               "line": 118
2026-06-15T09:40:48.8264278Z             },
2026-06-15T09:40:48.8264354Z             {
2026-06-15T09:40:48.8264464Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8264548Z               "line": 609
2026-06-15T09:40:48.8264628Z             },
2026-06-15T09:40:48.8264710Z             {
2026-06-15T09:40:48.8264816Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8264900Z               "line": 734
2026-06-15T09:40:48.8264981Z             },
2026-06-15T09:40:48.8265064Z             {
2026-06-15T09:40:48.8265178Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8265272Z               "line": 217
2026-06-15T09:40:48.8265350Z             },
2026-06-15T09:40:48.8265440Z             {
2026-06-15T09:40:48.8265553Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8265640Z               "line": 400
2026-06-15T09:40:48.8265717Z             },
2026-06-15T09:40:48.8265797Z             {
2026-06-15T09:40:48.8265921Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.8266013Z               "line": 1017
2026-06-15T09:40:48.8266098Z             }
2026-06-15T09:40:48.8266188Z           ]
2026-06-15T09:40:48.8266269Z         },
2026-06-15T09:40:48.8266361Z         "int": {
2026-06-15T09:40:48.8266450Z           "complete": false,
2026-06-15T09:40:48.8266541Z           "evidence": []
2026-06-15T09:40:48.8266623Z         },
2026-06-15T09:40:48.8266713Z         "unit": {
2026-06-15T09:40:48.8266803Z           "complete": true,
2026-06-15T09:40:48.8266885Z           "evidence": [
2026-06-15T09:40:48.8266971Z             {
2026-06-15T09:40:48.8267080Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8267169Z               "line": 825
2026-06-15T09:40:48.8267250Z             },
2026-06-15T09:40:48.8267332Z             {
2026-06-15T09:40:48.8267580Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T09:40:48.8267666Z               "line": 76
2026-06-15T09:40:48.8267822Z             },
2026-06-15T09:40:48.8267904Z             {
2026-06-15T09:40:48.8268038Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T09:40:48.8268113Z               "line": 147
2026-06-15T09:40:48.8268204Z             }
2026-06-15T09:40:48.8268291Z           ]
2026-06-15T09:40:48.8268366Z         }
2026-06-15T09:40:48.8268456Z       }
2026-06-15T09:40:48.8268539Z     },
2026-06-15T09:40:48.8268624Z     {
2026-06-15T09:40:48.8268705Z       "id": "REQ-EP-5",
2026-06-15T09:40:48.8269442Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T09:40:48.8269538Z       "requiredStages": [
2026-06-15T09:40:48.8269613Z         "impl",
2026-06-15T09:40:48.8269717Z         "unit",
2026-06-15T09:40:48.8269793Z         "int"
2026-06-15T09:40:48.8269880Z       ],
2026-06-15T09:40:48.8269970Z       "stages": {
2026-06-15T09:40:48.8270041Z         "doc": {
2026-06-15T09:40:48.8270132Z           "complete": false,
2026-06-15T09:40:48.8270213Z           "evidence": []
2026-06-15T09:40:48.8270299Z         },
2026-06-15T09:40:48.8270380Z         "impl": {
2026-06-15T09:40:48.8270471Z           "complete": true,
2026-06-15T09:40:48.8270556Z           "evidence": [
2026-06-15T09:40:48.8270637Z             {
2026-06-15T09:40:48.8270762Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8270843Z               "line": 367
2026-06-15T09:40:48.8270924Z             },
2026-06-15T09:40:48.8270994Z             {
2026-06-15T09:40:48.8271134Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8271253Z               "line": 18
2026-06-15T09:40:48.8271333Z             },
2026-06-15T09:40:48.8271410Z             {
2026-06-15T09:40:48.8271519Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8271620Z               "line": 63
2026-06-15T09:40:48.8271691Z             },
2026-06-15T09:40:48.8271774Z             {
2026-06-15T09:40:48.8271891Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8271973Z               "line": 92
2026-06-15T09:40:48.8272054Z             },
2026-06-15T09:40:48.8272135Z             {
2026-06-15T09:40:48.8272258Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8272338Z               "line": 167
2026-06-15T09:40:48.8272425Z             },
2026-06-15T09:40:48.8272504Z             {
2026-06-15T09:40:48.8272622Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8272703Z               "line": 179
2026-06-15T09:40:48.8272785Z             },
2026-06-15T09:40:48.8272870Z             {
2026-06-15T09:40:48.8272984Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8273081Z               "line": 114
2026-06-15T09:40:48.8273162Z             },
2026-06-15T09:40:48.8273251Z             {
2026-06-15T09:40:48.8273377Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8273462Z               "line": 22
2026-06-15T09:40:48.8273547Z             },
2026-06-15T09:40:48.8273624Z             {
2026-06-15T09:40:48.8273739Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8273829Z               "line": 145
2026-06-15T09:40:48.8273914Z             },
2026-06-15T09:40:48.8273997Z             {
2026-06-15T09:40:48.8274110Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8274210Z               "line": 174
2026-06-15T09:40:48.8274287Z             },
2026-06-15T09:40:48.8274368Z             {
2026-06-15T09:40:48.8274481Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8274573Z               "line": 196
2026-06-15T09:40:48.8274669Z             },
2026-06-15T09:40:48.8274862Z             {
2026-06-15T09:40:48.8274986Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8275164Z               "line": 221
2026-06-15T09:40:48.8275246Z             },
2026-06-15T09:40:48.8275323Z             {
2026-06-15T09:40:48.8275432Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8275522Z               "line": 247
2026-06-15T09:40:48.8275595Z             },
2026-06-15T09:40:48.8275686Z             {
2026-06-15T09:40:48.8275799Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8275875Z               "line": 270
2026-06-15T09:40:48.8275962Z             },
2026-06-15T09:40:48.8276043Z             {
2026-06-15T09:40:48.8276171Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8276248Z               "line": 100
2026-06-15T09:40:48.8276329Z             },
2026-06-15T09:40:48.8276419Z             {
2026-06-15T09:40:48.8276524Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8276629Z               "line": 5202
2026-06-15T09:40:48.8276710Z             },
2026-06-15T09:40:48.8276810Z             {
2026-06-15T09:40:48.8276916Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8277010Z               "line": 5336
2026-06-15T09:40:48.8277096Z             },
2026-06-15T09:40:48.8277179Z             {
2026-06-15T09:40:48.8277287Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8277373Z               "line": 5502
2026-06-15T09:40:48.8277464Z             },
2026-06-15T09:40:48.8277541Z             {
2026-06-15T09:40:48.8277644Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8277739Z               "line": 5884
2026-06-15T09:40:48.8277820Z             }
2026-06-15T09:40:48.8277906Z           ]
2026-06-15T09:40:48.8277987Z         },
2026-06-15T09:40:48.8278072Z         "int": {
2026-06-15T09:40:48.8278154Z           "complete": true,
2026-06-15T09:40:48.8278249Z           "evidence": [
2026-06-15T09:40:48.8278344Z             {
2026-06-15T09:40:48.8278469Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:40:48.8278560Z               "line": 16
2026-06-15T09:40:48.8278641Z             },
2026-06-15T09:40:48.8278721Z             {
2026-06-15T09:40:48.8278827Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:40:48.8278916Z               "line": 15
2026-06-15T09:40:48.8279089Z             }
2026-06-15T09:40:48.8279170Z           ]
2026-06-15T09:40:48.8279245Z         },
2026-06-15T09:40:48.8279322Z         "unit": {
2026-06-15T09:40:48.8279414Z           "complete": true,
2026-06-15T09:40:48.8279495Z           "evidence": [
2026-06-15T09:40:48.8279574Z             {
2026-06-15T09:40:48.8279699Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8279772Z               "line": 246
2026-06-15T09:40:48.8279861Z             },
2026-06-15T09:40:48.8279931Z             {
2026-06-15T09:40:48.8280051Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8280155Z               "line": 306
2026-06-15T09:40:48.8280239Z             },
2026-06-15T09:40:48.8280324Z             {
2026-06-15T09:40:48.8280435Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T09:40:48.8280516Z               "line": 363
2026-06-15T09:40:48.8280596Z             },
2026-06-15T09:40:48.8280678Z             {
2026-06-15T09:40:48.8280797Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8280878Z               "line": 286
2026-06-15T09:40:48.8280963Z             },
2026-06-15T09:40:48.8281046Z             {
2026-06-15T09:40:48.8281170Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8281249Z               "line": 338
2026-06-15T09:40:48.8281327Z             },
2026-06-15T09:40:48.8281417Z             {
2026-06-15T09:40:48.8281526Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8281621Z               "line": 659
2026-06-15T09:40:48.8281704Z             },
2026-06-15T09:40:48.8281898Z             {
2026-06-15T09:40:48.8282000Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8282184Z               "line": 7037
2026-06-15T09:40:48.8282261Z             },
2026-06-15T09:40:48.8282343Z             {
2026-06-15T09:40:48.8282446Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8282528Z               "line": 7164
2026-06-15T09:40:48.8282615Z             },
2026-06-15T09:40:48.8282696Z             {
2026-06-15T09:40:48.8282789Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8282879Z               "line": 7753
2026-06-15T09:40:48.8282961Z             },
2026-06-15T09:40:48.8283041Z             {
2026-06-15T09:40:48.8283140Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8283230Z               "line": 7869
2026-06-15T09:40:48.8283302Z             }
2026-06-15T09:40:48.8283388Z           ]
2026-06-15T09:40:48.8283463Z         }
2026-06-15T09:40:48.8283540Z       }
2026-06-15T09:40:48.8283636Z     },
2026-06-15T09:40:48.8283712Z     {
2026-06-15T09:40:48.8283812Z       "id": "REQ-EP-6",
2026-06-15T09:40:48.8285389Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T09:40:48.8285494Z       "requiredStages": [
2026-06-15T09:40:48.8285589Z         "doc",
2026-06-15T09:40:48.8285673Z         "impl",
2026-06-15T09:40:48.8285753Z         "unit"
2026-06-15T09:40:48.8285835Z       ],
2026-06-15T09:40:48.8285922Z       "stages": {
2026-06-15T09:40:48.8286007Z         "doc": {
2026-06-15T09:40:48.8286097Z           "complete": true,
2026-06-15T09:40:48.8286193Z           "evidence": [
2026-06-15T09:40:48.8286289Z             {
2026-06-15T09:40:48.8286397Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8286489Z               "line": 208
2026-06-15T09:40:48.8286584Z             }
2026-06-15T09:40:48.8286674Z           ]
2026-06-15T09:40:48.8286756Z         },
2026-06-15T09:40:48.8286842Z         "impl": {
2026-06-15T09:40:48.8286936Z           "complete": true,
2026-06-15T09:40:48.8287027Z           "evidence": [
2026-06-15T09:40:48.8287104Z             {
2026-06-15T09:40:48.8287218Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8287318Z               "line": 174
2026-06-15T09:40:48.8287395Z             }
2026-06-15T09:40:48.8287471Z           ]
2026-06-15T09:40:48.8287556Z         },
2026-06-15T09:40:48.8287637Z         "int": {
2026-06-15T09:40:48.8287719Z           "complete": true,
2026-06-15T09:40:48.8287810Z           "evidence": [
2026-06-15T09:40:48.8287885Z             {
2026-06-15T09:40:48.8288010Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T09:40:48.8288106Z               "line": 18
2026-06-15T09:40:48.8288195Z             }
2026-06-15T09:40:48.8288280Z           ]
2026-06-15T09:40:48.8288361Z         },
2026-06-15T09:40:48.8288443Z         "unit": {
2026-06-15T09:40:48.8288533Z           "complete": true,
2026-06-15T09:40:48.8288618Z           "evidence": [
2026-06-15T09:40:48.8288700Z             {
2026-06-15T09:40:48.8288824Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.8288905Z               "line": 528
2026-06-15T09:40:48.8289106Z             },
2026-06-15T09:40:48.8289196Z             {
2026-06-15T09:40:48.8289319Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8289401Z               "line": 629
2026-06-15T09:40:48.8289486Z             }
2026-06-15T09:40:48.8289567Z           ]
2026-06-15T09:40:48.8289644Z         }
2026-06-15T09:40:48.8289716Z       }
2026-06-15T09:40:48.8289796Z     },
2026-06-15T09:40:48.8289887Z     {
2026-06-15T09:40:48.8290093Z       "id": "REQ-EP-7",
2026-06-15T09:40:48.8291762Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T09:40:48.8291978Z       "requiredStages": [
2026-06-15T09:40:48.8292059Z         "doc",
2026-06-15T09:40:48.8292148Z         "impl",
2026-06-15T09:40:48.8292230Z         "unit"
2026-06-15T09:40:48.8292321Z       ],
2026-06-15T09:40:48.8292406Z       "stages": {
2026-06-15T09:40:48.8292487Z         "doc": {
2026-06-15T09:40:48.8292588Z           "complete": true,
2026-06-15T09:40:48.8292682Z           "evidence": [
2026-06-15T09:40:48.8292768Z             {
2026-06-15T09:40:48.8292860Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8292955Z               "line": 432
2026-06-15T09:40:48.8293035Z             }
2026-06-15T09:40:48.8293117Z           ]
2026-06-15T09:40:48.8293199Z         },
2026-06-15T09:40:48.8293275Z         "impl": {
2026-06-15T09:40:48.8293373Z           "complete": true,
2026-06-15T09:40:48.8293458Z           "evidence": [
2026-06-15T09:40:48.8293540Z             {
2026-06-15T09:40:48.8293657Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8293752Z               "line": 505
2026-06-15T09:40:48.8293833Z             },
2026-06-15T09:40:48.8293905Z             {
2026-06-15T09:40:48.8294009Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.8294090Z               "line": 87
2026-06-15T09:40:48.8294178Z             },
2026-06-15T09:40:48.8294258Z             {
2026-06-15T09:40:48.8294386Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8294487Z               "line": 81
2026-06-15T09:40:48.8294572Z             },
2026-06-15T09:40:48.8294662Z             {
2026-06-15T09:40:48.8294787Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8294868Z               "line": 166
2026-06-15T09:40:48.8294949Z             },
2026-06-15T09:40:48.8295035Z             {
2026-06-15T09:40:48.8295146Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8295220Z               "line": 1440
2026-06-15T09:40:48.8295306Z             }
2026-06-15T09:40:48.8295383Z           ]
2026-06-15T09:40:48.8295470Z         },
2026-06-15T09:40:48.8295554Z         "int": {
2026-06-15T09:40:48.8295650Z           "complete": false,
2026-06-15T09:40:48.8295741Z           "evidence": []
2026-06-15T09:40:48.8295822Z         },
2026-06-15T09:40:48.8295902Z         "unit": {
2026-06-15T09:40:48.8295987Z           "complete": true,
2026-06-15T09:40:48.8296083Z           "evidence": [
2026-06-15T09:40:48.8296163Z             {
2026-06-15T09:40:48.8296285Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8296385Z               "line": 623
2026-06-15T09:40:48.8296467Z             },
2026-06-15T09:40:48.8296548Z             {
2026-06-15T09:40:48.8296657Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8296744Z               "line": 212
2026-06-15T09:40:48.8296830Z             },
2026-06-15T09:40:48.8296915Z             {
2026-06-15T09:40:48.8297025Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.8297115Z               "line": 307
2026-06-15T09:40:48.8297201Z             },
2026-06-15T09:40:48.8297281Z             {
2026-06-15T09:40:48.8297388Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8297478Z               "line": 6224
2026-06-15T09:40:48.8297563Z             },
2026-06-15T09:40:48.8297645Z             {
2026-06-15T09:40:48.8297745Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8297921Z               "line": 6251
2026-06-15T09:40:48.8297999Z             }
2026-06-15T09:40:48.8298154Z           ]
2026-06-15T09:40:48.8298240Z         }
2026-06-15T09:40:48.8298323Z       }
2026-06-15T09:40:48.8298407Z     },
2026-06-15T09:40:48.8298488Z     {
2026-06-15T09:40:48.8298570Z       "id": "REQ-FRONT-1",
2026-06-15T09:40:48.8298741Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T09:40:48.8298840Z       "requiredStages": [],
2026-06-15T09:40:48.8298921Z       "stages": {
2026-06-15T09:40:48.8299084Z         "doc": {
2026-06-15T09:40:48.8299183Z           "complete": false,
2026-06-15T09:40:48.8299270Z           "evidence": []
2026-06-15T09:40:48.8299351Z         },
2026-06-15T09:40:48.8299432Z         "impl": {
2026-06-15T09:40:48.8299521Z           "complete": false,
2026-06-15T09:40:48.8299604Z           "evidence": []
2026-06-15T09:40:48.8299690Z         },
2026-06-15T09:40:48.8299770Z         "int": {
2026-06-15T09:40:48.8299851Z           "complete": false,
2026-06-15T09:40:48.8299952Z           "evidence": []
2026-06-15T09:40:48.8300033Z         },
2026-06-15T09:40:48.8300128Z         "unit": {
2026-06-15T09:40:48.8300204Z           "complete": false,
2026-06-15T09:40:48.8300300Z           "evidence": []
2026-06-15T09:40:48.8300375Z         }
2026-06-15T09:40:48.8300452Z       }
2026-06-15T09:40:48.8300534Z     },
2026-06-15T09:40:48.8300615Z     {
2026-06-15T09:40:48.8300738Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T09:40:48.8303238Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T09:40:48.8303347Z       "requiredStages": [
2026-06-15T09:40:48.8303421Z         "doc",
2026-06-15T09:40:48.8303506Z         "impl",
2026-06-15T09:40:48.8303585Z         "unit",
2026-06-15T09:40:48.8303677Z         "int"
2026-06-15T09:40:48.8303759Z       ],
2026-06-15T09:40:48.8303849Z       "stages": {
2026-06-15T09:40:48.8303933Z         "doc": {
2026-06-15T09:40:48.8304023Z           "complete": true,
2026-06-15T09:40:48.8304119Z           "evidence": [
2026-06-15T09:40:48.8304199Z             {
2026-06-15T09:40:48.8304302Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8304384Z               "line": 326
2026-06-15T09:40:48.8304480Z             }
2026-06-15T09:40:48.8304565Z           ]
2026-06-15T09:40:48.8304646Z         },
2026-06-15T09:40:48.8304738Z         "impl": {
2026-06-15T09:40:48.8304818Z           "complete": true,
2026-06-15T09:40:48.8304912Z           "evidence": [
2026-06-15T09:40:48.8304984Z             {
2026-06-15T09:40:48.8305123Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8305209Z               "line": 480
2026-06-15T09:40:48.8305290Z             },
2026-06-15T09:40:48.8305381Z             {
2026-06-15T09:40:48.8305500Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8305595Z               "line": 485
2026-06-15T09:40:48.8305677Z             },
2026-06-15T09:40:48.8305762Z             {
2026-06-15T09:40:48.8305876Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8305963Z               "line": 860
2026-06-15T09:40:48.8306044Z             },
2026-06-15T09:40:48.8306123Z             {
2026-06-15T09:40:48.8306249Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8306452Z               "line": 901
2026-06-15T09:40:48.8306624Z             },
2026-06-15T09:40:48.8306714Z             {
2026-06-15T09:40:48.8306841Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8306936Z               "line": 912
2026-06-15T09:40:48.8307018Z             },
2026-06-15T09:40:48.8307103Z             {
2026-06-15T09:40:48.8307222Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.8307309Z               "line": 358
2026-06-15T09:40:48.8307385Z             }
2026-06-15T09:40:48.8307470Z           ]
2026-06-15T09:40:48.8307551Z         },
2026-06-15T09:40:48.8307638Z         "int": {
2026-06-15T09:40:48.8307733Z           "complete": true,
2026-06-15T09:40:48.8307823Z           "evidence": [
2026-06-15T09:40:48.8307905Z             {
2026-06-15T09:40:48.8308038Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T09:40:48.8308118Z               "line": 30
2026-06-15T09:40:48.8308215Z             }
2026-06-15T09:40:48.8308296Z           ]
2026-06-15T09:40:48.8308395Z         },
2026-06-15T09:40:48.8308486Z         "unit": {
2026-06-15T09:40:48.8308573Z           "complete": true,
2026-06-15T09:40:48.8308657Z           "evidence": [
2026-06-15T09:40:48.8308739Z             {
2026-06-15T09:40:48.8308864Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8309029Z               "line": 1453
2026-06-15T09:40:48.8309116Z             },
2026-06-15T09:40:48.8309198Z             {
2026-06-15T09:40:48.8309315Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8309405Z               "line": 1478
2026-06-15T09:40:48.8309477Z             },
2026-06-15T09:40:48.8309553Z             {
2026-06-15T09:40:48.8309672Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8309767Z               "line": 1495
2026-06-15T09:40:48.8309844Z             },
2026-06-15T09:40:48.8309925Z             {
2026-06-15T09:40:48.8310044Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8310130Z               "line": 1538
2026-06-15T09:40:48.8310216Z             }
2026-06-15T09:40:48.8310297Z           ]
2026-06-15T09:40:48.8310378Z         }
2026-06-15T09:40:48.8310464Z       }
2026-06-15T09:40:48.8310545Z     },
2026-06-15T09:40:48.8310631Z     {
2026-06-15T09:40:48.8310750Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T09:40:48.8313389Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T09:40:48.8313498Z       "requiredStages": [
2026-06-15T09:40:48.8313583Z         "doc",
2026-06-15T09:40:48.8313661Z         "impl",
2026-06-15T09:40:48.8313751Z         "unit",
2026-06-15T09:40:48.8313831Z         "int"
2026-06-15T09:40:48.8313917Z       ],
2026-06-15T09:40:48.8313995Z       "stages": {
2026-06-15T09:40:48.8314080Z         "doc": {
2026-06-15T09:40:48.8314175Z           "complete": true,
2026-06-15T09:40:48.8314262Z           "evidence": [
2026-06-15T09:40:48.8314348Z             {
2026-06-15T09:40:48.8314446Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8314536Z               "line": 295
2026-06-15T09:40:48.8314612Z             }
2026-06-15T09:40:48.8314815Z           ]
2026-06-15T09:40:48.8314891Z         },
2026-06-15T09:40:48.8314973Z         "impl": {
2026-06-15T09:40:48.8315163Z           "complete": true,
2026-06-15T09:40:48.8315244Z           "evidence": [
2026-06-15T09:40:48.8315326Z             {
2026-06-15T09:40:48.8315435Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.8315530Z               "line": 108
2026-06-15T09:40:48.8315617Z             },
2026-06-15T09:40:48.8315693Z             {
2026-06-15T09:40:48.8315821Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8315908Z               "line": 794
2026-06-15T09:40:48.8315998Z             },
2026-06-15T09:40:48.8316079Z             {
2026-06-15T09:40:48.8316203Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8316294Z               "line": 994
2026-06-15T09:40:48.8316374Z             },
2026-06-15T09:40:48.8316465Z             {
2026-06-15T09:40:48.8316580Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8316684Z               "line": 23
2026-06-15T09:40:48.8316765Z             },
2026-06-15T09:40:48.8316858Z             {
2026-06-15T09:40:48.8316985Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8317060Z               "line": 113
2026-06-15T09:40:48.8317136Z             },
2026-06-15T09:40:48.8317217Z             {
2026-06-15T09:40:48.8317339Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8317420Z               "line": 158
2026-06-15T09:40:48.8317506Z             },
2026-06-15T09:40:48.8317587Z             {
2026-06-15T09:40:48.8317701Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8317782Z               "line": 215
2026-06-15T09:40:48.8317860Z             },
2026-06-15T09:40:48.8317940Z             {
2026-06-15T09:40:48.8318059Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8318145Z               "line": 247
2026-06-15T09:40:48.8318231Z             },
2026-06-15T09:40:48.8318312Z             {
2026-06-15T09:40:48.8318436Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8318523Z               "line": 261
2026-06-15T09:40:48.8318602Z             },
2026-06-15T09:40:48.8318678Z             {
2026-06-15T09:40:48.8318794Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8318875Z               "line": 306
2026-06-15T09:40:48.8319022Z             },
2026-06-15T09:40:48.8319100Z             {
2026-06-15T09:40:48.8319213Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8319299Z               "line": 333
2026-06-15T09:40:48.8319385Z             },
2026-06-15T09:40:48.8319462Z             {
2026-06-15T09:40:48.8319584Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8319666Z               "line": 345
2026-06-15T09:40:48.8319748Z             },
2026-06-15T09:40:48.8319829Z             {
2026-06-15T09:40:48.8319951Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8320051Z               "line": 359
2026-06-15T09:40:48.8320138Z             },
2026-06-15T09:40:48.8320223Z             {
2026-06-15T09:40:48.8320322Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8320414Z               "line": 386
2026-06-15T09:40:48.8320495Z             },
2026-06-15T09:40:48.8320575Z             {
2026-06-15T09:40:48.8320695Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8320781Z               "line": 629
2026-06-15T09:40:48.8320862Z             },
2026-06-15T09:40:48.8320938Z             {
2026-06-15T09:40:48.8321054Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8321134Z               "line": 958
2026-06-15T09:40:48.8321205Z             },
2026-06-15T09:40:48.8321295Z             {
2026-06-15T09:40:48.8321402Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8321501Z               "line": 178
2026-06-15T09:40:48.8321712Z             },
2026-06-15T09:40:48.8321825Z             {
2026-06-15T09:40:48.8321930Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8322210Z               "line": 590
2026-06-15T09:40:48.8322296Z             },
2026-06-15T09:40:48.8322381Z             {
2026-06-15T09:40:48.8322504Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8322589Z               "line": 662
2026-06-15T09:40:48.8322842Z             },
2026-06-15T09:40:48.8327388Z             {
2026-06-15T09:40:48.8327639Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8327909Z               "line": 674
2026-06-15T09:40:48.8328099Z             },
2026-06-15T09:40:48.8328275Z             {
2026-06-15T09:40:48.8328486Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8328739Z               "line": 1084
2026-06-15T09:40:48.8328933Z             },
2026-06-15T09:40:48.8329206Z             {
2026-06-15T09:40:48.8329398Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8329645Z               "line": 181
2026-06-15T09:40:48.8329840Z             },
2026-06-15T09:40:48.8329998Z             {
2026-06-15T09:40:48.8330193Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8330431Z               "line": 223
2026-06-15T09:40:48.8330616Z             },
2026-06-15T09:40:48.8330783Z             {
2026-06-15T09:40:48.8330974Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8331216Z               "line": 234
2026-06-15T09:40:48.8331404Z             },
2026-06-15T09:40:48.8331570Z             {
2026-06-15T09:40:48.8331770Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8332013Z               "line": 260
2026-06-15T09:40:48.8332195Z             },
2026-06-15T09:40:48.8332389Z             {
2026-06-15T09:40:48.8332597Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8332904Z               "line": 56
2026-06-15T09:40:48.8333120Z             },
2026-06-15T09:40:48.8333284Z             {
2026-06-15T09:40:48.8333479Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8333721Z               "line": 188
2026-06-15T09:40:48.8333908Z             },
2026-06-15T09:40:48.8334070Z             {
2026-06-15T09:40:48.8334266Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T09:40:48.8334514Z               "line": 63
2026-06-15T09:40:48.8334690Z             },
2026-06-15T09:40:48.8334852Z             {
2026-06-15T09:40:48.8335047Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8335290Z               "line": 258
2026-06-15T09:40:48.8335473Z             },
2026-06-15T09:40:48.8335642Z             {
2026-06-15T09:40:48.8335832Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.8336069Z               "line": 424
2026-06-15T09:40:48.8336250Z             },
2026-06-15T09:40:48.8336409Z             {
2026-06-15T09:40:48.8336612Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8336842Z               "line": 1745
2026-06-15T09:40:48.8337023Z             }
2026-06-15T09:40:48.8337180Z           ]
2026-06-15T09:40:48.8337348Z         },
2026-06-15T09:40:48.8337523Z         "int": {
2026-06-15T09:40:48.8337710Z           "complete": true,
2026-06-15T09:40:48.8337909Z           "evidence": [
2026-06-15T09:40:48.8338082Z             {
2026-06-15T09:40:48.8338285Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:40:48.8338530Z               "line": 57
2026-06-15T09:40:48.8338713Z             },
2026-06-15T09:40:48.8338883Z             {
2026-06-15T09:40:48.8339151Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T09:40:48.8339409Z               "line": 41
2026-06-15T09:40:48.8339591Z             }
2026-06-15T09:40:48.8339742Z           ]
2026-06-15T09:40:48.8339895Z         },
2026-06-15T09:40:48.8340062Z         "unit": {
2026-06-15T09:40:48.8340234Z           "complete": true,
2026-06-15T09:40:48.8340578Z           "evidence": [
2026-06-15T09:40:48.8340763Z             {
2026-06-15T09:40:48.8341071Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.8341330Z               "line": 532
2026-06-15T09:40:48.8341511Z             },
2026-06-15T09:40:48.8341682Z             {
2026-06-15T09:40:48.8341878Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.8342130Z               "line": 755
2026-06-15T09:40:48.8342312Z             },
2026-06-15T09:40:48.8342489Z             {
2026-06-15T09:40:48.8342692Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8342926Z               "line": 1027
2026-06-15T09:40:48.8343109Z             },
2026-06-15T09:40:48.8343264Z             {
2026-06-15T09:40:48.8343459Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8343704Z               "line": 1061
2026-06-15T09:40:48.8343891Z             },
2026-06-15T09:40:48.8344053Z             {
2026-06-15T09:40:48.8344253Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8344554Z               "line": 1103
2026-06-15T09:40:48.8344736Z             },
2026-06-15T09:40:48.8344897Z             {
2026-06-15T09:40:48.8345093Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8345351Z               "line": 1175
2026-06-15T09:40:48.8345541Z             },
2026-06-15T09:40:48.8345714Z             {
2026-06-15T09:40:48.8345918Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8346174Z               "line": 1188
2026-06-15T09:40:48.8346365Z             },
2026-06-15T09:40:48.8346538Z             {
2026-06-15T09:40:48.8346754Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8346997Z               "line": 1211
2026-06-15T09:40:48.8347182Z             },
2026-06-15T09:40:48.8347340Z             {
2026-06-15T09:40:48.8347569Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8347817Z               "line": 1237
2026-06-15T09:40:48.8347989Z             },
2026-06-15T09:40:48.8348160Z             {
2026-06-15T09:40:48.8348360Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8348600Z               "line": 1251
2026-06-15T09:40:48.8348788Z             },
2026-06-15T09:40:48.8349020Z             {
2026-06-15T09:40:48.8349216Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8349468Z               "line": 1275
2026-06-15T09:40:48.8349659Z             },
2026-06-15T09:40:48.8349821Z             {
2026-06-15T09:40:48.8350025Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8350259Z               "line": 1407
2026-06-15T09:40:48.8350436Z             },
2026-06-15T09:40:48.8350593Z             {
2026-06-15T09:40:48.8350785Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8351022Z               "line": 1583
2026-06-15T09:40:48.8351204Z             },
2026-06-15T09:40:48.8351371Z             {
2026-06-15T09:40:48.8351565Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8351814Z               "line": 1638
2026-06-15T09:40:48.8351993Z             },
2026-06-15T09:40:48.8352161Z             {
2026-06-15T09:40:48.8352351Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8352590Z               "line": 1684
2026-06-15T09:40:48.8352776Z             },
2026-06-15T09:40:48.8352947Z             {
2026-06-15T09:40:48.8353134Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8353373Z               "line": 1729
2026-06-15T09:40:48.8353563Z             },
2026-06-15T09:40:48.8353726Z             {
2026-06-15T09:40:48.8353928Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8354174Z               "line": 1773
2026-06-15T09:40:48.8354346Z             },
2026-06-15T09:40:48.8354512Z             {
2026-06-15T09:40:48.8354704Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8355061Z               "line": 1815
2026-06-15T09:40:48.8355339Z             },
2026-06-15T09:40:48.8355499Z             {
2026-06-15T09:40:48.8355691Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8355940Z               "line": 1418
2026-06-15T09:40:48.8356119Z             },
2026-06-15T09:40:48.8356264Z             {
2026-06-15T09:40:48.8356458Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8356706Z               "line": 217
2026-06-15T09:40:48.8356886Z             },
2026-06-15T09:40:48.8357046Z             {
2026-06-15T09:40:48.8357233Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8357475Z               "line": 233
2026-06-15T09:40:48.8357652Z             },
2026-06-15T09:40:48.8357829Z             {
2026-06-15T09:40:48.8358014Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8358252Z               "line": 254
2026-06-15T09:40:48.8358434Z             },
2026-06-15T09:40:48.8358601Z             {
2026-06-15T09:40:48.8358793Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8359112Z               "line": 265
2026-06-15T09:40:48.8359291Z             },
2026-06-15T09:40:48.8359463Z             {
2026-06-15T09:40:48.8359656Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8359895Z               "line": 278
2026-06-15T09:40:48.8360076Z             },
2026-06-15T09:40:48.8360242Z             {
2026-06-15T09:40:48.8360434Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8360672Z               "line": 289
2026-06-15T09:40:48.8360843Z             },
2026-06-15T09:40:48.8361010Z             {
2026-06-15T09:40:48.8361206Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8361458Z               "line": 301
2026-06-15T09:40:48.8361636Z             },
2026-06-15T09:40:48.8361796Z             {
2026-06-15T09:40:48.8361994Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8362239Z               "line": 312
2026-06-15T09:40:48.8362412Z             },
2026-06-15T09:40:48.8362578Z             {
2026-06-15T09:40:48.8362779Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8363017Z               "line": 323
2026-06-15T09:40:48.8363202Z             },
2026-06-15T09:40:48.8363365Z             {
2026-06-15T09:40:48.8363560Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8363794Z               "line": 332
2026-06-15T09:40:48.8363971Z             },
2026-06-15T09:40:48.8364137Z             {
2026-06-15T09:40:48.8364337Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8364584Z               "line": 342
2026-06-15T09:40:48.8364773Z             },
2026-06-15T09:40:48.8364936Z             {
2026-06-15T09:40:48.8365130Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T09:40:48.8365383Z               "line": 358
2026-06-15T09:40:48.8365575Z             },
2026-06-15T09:40:48.8365735Z             {
2026-06-15T09:40:48.8365941Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8366190Z               "line": 708
2026-06-15T09:40:48.8366370Z             },
2026-06-15T09:40:48.8366533Z             {
2026-06-15T09:40:48.8366728Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8366976Z               "line": 744
2026-06-15T09:40:48.8367163Z             },
2026-06-15T09:40:48.8367328Z             {
2026-06-15T09:40:48.8367527Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.8367764Z               "line": 966
2026-06-15T09:40:48.8367935Z             },
2026-06-15T09:40:48.8368103Z             {
2026-06-15T09:40:48.8368297Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:40:48.8368542Z               "line": 143
2026-06-15T09:40:48.8368718Z             },
2026-06-15T09:40:48.8368885Z             {
2026-06-15T09:40:48.8369276Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:40:48.8369533Z               "line": 222
2026-06-15T09:40:48.8369809Z             },
2026-06-15T09:40:48.8369966Z             {
2026-06-15T09:40:48.8370159Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T09:40:48.8370398Z               "line": 291
2026-06-15T09:40:48.8370578Z             },
2026-06-15T09:40:48.8370731Z             {
2026-06-15T09:40:48.8370917Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T09:40:48.8371165Z               "line": 17
2026-06-15T09:40:48.8371342Z             },
2026-06-15T09:40:48.8371508Z             {
2026-06-15T09:40:48.8371694Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T09:40:48.8371939Z               "line": 104
2026-06-15T09:40:48.8372118Z             }
2026-06-15T09:40:48.8372282Z           ]
2026-06-15T09:40:48.8372443Z         }
2026-06-15T09:40:48.8372606Z       }
2026-06-15T09:40:48.8372761Z     },
2026-06-15T09:40:48.8372919Z     {
2026-06-15T09:40:48.8373113Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T09:40:48.8373452Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T09:40:48.8373767Z       "requiredStages": [
2026-06-15T09:40:48.8373963Z         "impl",
2026-06-15T09:40:48.8374135Z         "unit"
2026-06-15T09:40:48.8374297Z       ],
2026-06-15T09:40:48.8374465Z       "stages": {
2026-06-15T09:40:48.8374635Z         "doc": {
2026-06-15T09:40:48.8374823Z           "complete": false,
2026-06-15T09:40:48.8375025Z           "evidence": []
2026-06-15T09:40:48.8375210Z         },
2026-06-15T09:40:48.8375366Z         "impl": {
2026-06-15T09:40:48.8375544Z           "complete": true,
2026-06-15T09:40:48.8375743Z           "evidence": [
2026-06-15T09:40:48.8375934Z             {
2026-06-15T09:40:48.8376125Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8376363Z               "line": 168
2026-06-15T09:40:48.8376540Z             },
2026-06-15T09:40:48.8376712Z             {
2026-06-15T09:40:48.8376911Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8377155Z               "line": 18
2026-06-15T09:40:48.8377337Z             },
2026-06-15T09:40:48.8377507Z             {
2026-06-15T09:40:48.8377694Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8377930Z               "line": 100
2026-06-15T09:40:48.8378106Z             }
2026-06-15T09:40:48.8378266Z           ]
2026-06-15T09:40:48.8378415Z         },
2026-06-15T09:40:48.8378581Z         "int": {
2026-06-15T09:40:48.8378754Z           "complete": false,
2026-06-15T09:40:48.8379016Z           "evidence": []
2026-06-15T09:40:48.8379196Z         },
2026-06-15T09:40:48.8379355Z         "unit": {
2026-06-15T09:40:48.8379531Z           "complete": true,
2026-06-15T09:40:48.8379725Z           "evidence": [
2026-06-15T09:40:48.8379904Z             {
2026-06-15T09:40:48.8380098Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8380341Z               "line": 733
2026-06-15T09:40:48.8380521Z             },
2026-06-15T09:40:48.8380686Z             {
2026-06-15T09:40:48.8380886Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8381115Z               "line": 161
2026-06-15T09:40:48.8381301Z             },
2026-06-15T09:40:48.8381467Z             {
2026-06-15T09:40:48.8381659Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8381893Z               "line": 233
2026-06-15T09:40:48.8382073Z             }
2026-06-15T09:40:48.8382236Z           ]
2026-06-15T09:40:48.8382398Z         }
2026-06-15T09:40:48.8382565Z       }
2026-06-15T09:40:48.8382712Z     },
2026-06-15T09:40:48.8382875Z     {
2026-06-15T09:40:48.8383056Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T09:40:48.8383636Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T09:40:48.8384318Z       "requiredStages": [
2026-06-15T09:40:48.8384514Z         "impl",
2026-06-15T09:40:48.8384681Z         "unit"
2026-06-15T09:40:48.8384938Z       ],
2026-06-15T09:40:48.8385091Z       "stages": {
2026-06-15T09:40:48.8385262Z         "doc": {
2026-06-15T09:40:48.8385429Z           "complete": true,
2026-06-15T09:40:48.8385623Z           "evidence": [
2026-06-15T09:40:48.8385803Z             {
2026-06-15T09:40:48.8385988Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8386217Z               "line": 220
2026-06-15T09:40:48.8386399Z             }
2026-06-15T09:40:48.8386560Z           ]
2026-06-15T09:40:48.8386718Z         },
2026-06-15T09:40:48.8386879Z         "impl": {
2026-06-15T09:40:48.8387057Z           "complete": true,
2026-06-15T09:40:48.8387252Z           "evidence": [
2026-06-15T09:40:48.8387424Z             {
2026-06-15T09:40:48.8387630Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.8387887Z               "line": 305
2026-06-15T09:40:48.8388081Z             },
2026-06-15T09:40:48.8388241Z             {
2026-06-15T09:40:48.8388433Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8388694Z               "line": 257
2026-06-15T09:40:48.8388870Z             },
2026-06-15T09:40:48.8389108Z             {
2026-06-15T09:40:48.8389304Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8389543Z               "line": 405
2026-06-15T09:40:48.8389728Z             },
2026-06-15T09:40:48.8389886Z             {
2026-06-15T09:40:48.8390086Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8395784Z               "line": 77
2026-06-15T09:40:48.8396022Z             }
2026-06-15T09:40:48.8396188Z           ]
2026-06-15T09:40:48.8396354Z         },
2026-06-15T09:40:48.8396520Z         "int": {
2026-06-15T09:40:48.8396701Z           "complete": false,
2026-06-15T09:40:48.8396916Z           "evidence": []
2026-06-15T09:40:48.8397102Z         },
2026-06-15T09:40:48.8397264Z         "unit": {
2026-06-15T09:40:48.8397464Z           "complete": true,
2026-06-15T09:40:48.8397660Z           "evidence": [
2026-06-15T09:40:48.8397847Z             {
2026-06-15T09:40:48.8398051Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8398303Z               "line": 478
2026-06-15T09:40:48.8398496Z             },
2026-06-15T09:40:48.8398661Z             {
2026-06-15T09:40:48.8398853Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8399179Z               "line": 516
2026-06-15T09:40:48.8399363Z             },
2026-06-15T09:40:48.8399555Z             {
2026-06-15T09:40:48.8399745Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8399978Z               "line": 166
2026-06-15T09:40:48.8400155Z             }
2026-06-15T09:40:48.8400311Z           ]
2026-06-15T09:40:48.8400479Z         }
2026-06-15T09:40:48.8400636Z       }
2026-06-15T09:40:48.8400794Z     },
2026-06-15T09:40:48.8400951Z     {
2026-06-15T09:40:48.8401151Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T09:40:48.8401872Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T09:40:48.8402564Z       "requiredStages": [
2026-06-15T09:40:48.8402755Z         "impl",
2026-06-15T09:40:48.8402932Z         "unit"
2026-06-15T09:40:48.8403098Z       ],
2026-06-15T09:40:48.8403261Z       "stages": {
2026-06-15T09:40:48.8403428Z         "doc": {
2026-06-15T09:40:48.8403614Z           "complete": false,
2026-06-15T09:40:48.8403813Z           "evidence": []
2026-06-15T09:40:48.8404000Z         },
2026-06-15T09:40:48.8404172Z         "impl": {
2026-06-15T09:40:48.8404348Z           "complete": true,
2026-06-15T09:40:48.8404547Z           "evidence": [
2026-06-15T09:40:48.8404728Z             {
2026-06-15T09:40:48.8404925Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:40:48.8405339Z               "line": 22
2026-06-15T09:40:48.8405515Z             },
2026-06-15T09:40:48.8405782Z             {
2026-06-15T09:40:48.8405977Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8406226Z               "line": 487
2026-06-15T09:40:48.8406407Z             },
2026-06-15T09:40:48.8406574Z             {
2026-06-15T09:40:48.8406768Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:40:48.8407014Z               "line": 17
2026-06-15T09:40:48.8407190Z             },
2026-06-15T09:40:48.8407352Z             {
2026-06-15T09:40:48.8407538Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:40:48.8407787Z               "line": 147
2026-06-15T09:40:48.8407962Z             },
2026-06-15T09:40:48.8408125Z             {
2026-06-15T09:40:48.8408324Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8408582Z               "line": 226
2026-06-15T09:40:48.8408765Z             },
2026-06-15T09:40:48.8408935Z             {
2026-06-15T09:40:48.8409207Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8409464Z               "line": 251
2026-06-15T09:40:48.8409645Z             },
2026-06-15T09:40:48.8409814Z             {
2026-06-15T09:40:48.8410005Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8410247Z               "line": 277
2026-06-15T09:40:48.8410425Z             },
2026-06-15T09:40:48.8410591Z             {
2026-06-15T09:40:48.8410791Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.8411030Z               "line": 124
2026-06-15T09:40:48.8411211Z             },
2026-06-15T09:40:48.8411392Z             {
2026-06-15T09:40:48.8411598Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.8411840Z               "line": 224
2026-06-15T09:40:48.8412017Z             }
2026-06-15T09:40:48.8412182Z           ]
2026-06-15T09:40:48.8412353Z         },
2026-06-15T09:40:48.8412514Z         "int": {
2026-06-15T09:40:48.8412705Z           "complete": false,
2026-06-15T09:40:48.8412906Z           "evidence": []
2026-06-15T09:40:48.8413086Z         },
2026-06-15T09:40:48.8413249Z         "unit": {
2026-06-15T09:40:48.8413429Z           "complete": true,
2026-06-15T09:40:48.8413625Z           "evidence": [
2026-06-15T09:40:48.8413806Z             {
2026-06-15T09:40:48.8414002Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:40:48.8414254Z               "line": 63
2026-06-15T09:40:48.8414432Z             },
2026-06-15T09:40:48.8414588Z             {
2026-06-15T09:40:48.8414785Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:40:48.8415030Z               "line": 73
2026-06-15T09:40:48.8415203Z             },
2026-06-15T09:40:48.8415359Z             {
2026-06-15T09:40:48.8415561Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T09:40:48.8415794Z               "line": 85
2026-06-15T09:40:48.8415979Z             },
2026-06-15T09:40:48.8416152Z             {
2026-06-15T09:40:48.8416347Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.8416599Z               "line": 346
2026-06-15T09:40:48.8416781Z             },
2026-06-15T09:40:48.8416942Z             {
2026-06-15T09:40:48.8417125Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:40:48.8417371Z               "line": 281
2026-06-15T09:40:48.8417559Z             },
2026-06-15T09:40:48.8417717Z             {
2026-06-15T09:40:48.8417902Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:40:48.8418137Z               "line": 322
2026-06-15T09:40:48.8418318Z             },
2026-06-15T09:40:48.8418484Z             {
2026-06-15T09:40:48.8418671Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T09:40:48.8418908Z               "line": 360
2026-06-15T09:40:48.8419156Z             },
2026-06-15T09:40:48.8419320Z             {
2026-06-15T09:40:48.8419538Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8419892Z               "line": 688
2026-06-15T09:40:48.8420071Z             },
2026-06-15T09:40:48.8420319Z             {
2026-06-15T09:40:48.8420517Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.8420760Z               "line": 397
2026-06-15T09:40:48.8420942Z             },
2026-06-15T09:40:48.8421113Z             {
2026-06-15T09:40:48.8421304Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.8421534Z               "line": 440
2026-06-15T09:40:48.8421718Z             }
2026-06-15T09:40:48.8421882Z           ]
2026-06-15T09:40:48.8422038Z         }
2026-06-15T09:40:48.8422197Z       }
2026-06-15T09:40:48.8422362Z     },
2026-06-15T09:40:48.8422521Z     {
2026-06-15T09:40:48.8422728Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T09:40:48.8423069Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T09:40:48.8423413Z       "requiredStages": [
2026-06-15T09:40:48.8423603Z         "impl",
2026-06-15T09:40:48.8423767Z         "unit"
2026-06-15T09:40:48.8423923Z       ],
2026-06-15T09:40:48.8424086Z       "stages": {
2026-06-15T09:40:48.8424257Z         "doc": {
2026-06-15T09:40:48.8424429Z           "complete": false,
2026-06-15T09:40:48.8424638Z           "evidence": []
2026-06-15T09:40:48.8424819Z         },
2026-06-15T09:40:48.8424972Z         "impl": {
2026-06-15T09:40:48.8425143Z           "complete": true,
2026-06-15T09:40:48.8425340Z           "evidence": [
2026-06-15T09:40:48.8425510Z             {
2026-06-15T09:40:48.8425705Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:40:48.8425953Z               "line": 169
2026-06-15T09:40:48.8426121Z             }
2026-06-15T09:40:48.8426287Z           ]
2026-06-15T09:40:48.8426445Z         },
2026-06-15T09:40:48.8426602Z         "int": {
2026-06-15T09:40:48.8426778Z           "complete": true,
2026-06-15T09:40:48.8426970Z           "evidence": [
2026-06-15T09:40:48.8427145Z             {
2026-06-15T09:40:48.8427337Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T09:40:48.8427585Z               "line": 44
2026-06-15T09:40:48.8427773Z             },
2026-06-15T09:40:48.8427940Z             {
2026-06-15T09:40:48.8428124Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T09:40:48.8428359Z               "line": 66
2026-06-15T09:40:48.8428544Z             }
2026-06-15T09:40:48.8428706Z           ]
2026-06-15T09:40:48.8428874Z         },
2026-06-15T09:40:48.8429120Z         "unit": {
2026-06-15T09:40:48.8429297Z           "complete": true,
2026-06-15T09:40:48.8429483Z           "evidence": [
2026-06-15T09:40:48.8429665Z             {
2026-06-15T09:40:48.8429856Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:40:48.8430084Z               "line": 186
2026-06-15T09:40:48.8430265Z             },
2026-06-15T09:40:48.8430433Z             {
2026-06-15T09:40:48.8430617Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:40:48.8430855Z               "line": 238
2026-06-15T09:40:48.8431044Z             },
2026-06-15T09:40:48.8431202Z             {
2026-06-15T09:40:48.8431396Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T09:40:48.8431625Z               "line": 266
2026-06-15T09:40:48.8431803Z             }
2026-06-15T09:40:48.8431963Z           ]
2026-06-15T09:40:48.8432118Z         }
2026-06-15T09:40:48.8432283Z       }
2026-06-15T09:40:48.8432433Z     },
2026-06-15T09:40:48.8432588Z     {
2026-06-15T09:40:48.8432804Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T09:40:48.8433408Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T09:40:48.8433954Z       "requiredStages": [
2026-06-15T09:40:48.8434045Z         "impl",
2026-06-15T09:40:48.8434121Z         "unit",
2026-06-15T09:40:48.8434201Z         "int"
2026-06-15T09:40:48.8434283Z       ],
2026-06-15T09:40:48.8434369Z       "stages": {
2026-06-15T09:40:48.8434564Z         "doc": {
2026-06-15T09:40:48.8434646Z           "complete": false,
2026-06-15T09:40:48.8434835Z           "evidence": []
2026-06-15T09:40:48.8434912Z         },
2026-06-15T09:40:48.8434994Z         "impl": {
2026-06-15T09:40:48.8435084Z           "complete": true,
2026-06-15T09:40:48.8435174Z           "evidence": [
2026-06-15T09:40:48.8435252Z             {
2026-06-15T09:40:48.8435374Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8435465Z               "line": 152
2026-06-15T09:40:48.8435542Z             },
2026-06-15T09:40:48.8435629Z             {
2026-06-15T09:40:48.8435732Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8435818Z               "line": 176
2026-06-15T09:40:48.8435900Z             },
2026-06-15T09:40:48.8435972Z             {
2026-06-15T09:40:48.8436075Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.8436155Z               "line": 79
2026-06-15T09:40:48.8436237Z             },
2026-06-15T09:40:48.8436324Z             {
2026-06-15T09:40:48.8436442Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8436542Z               "line": 52
2026-06-15T09:40:48.8436624Z             },
2026-06-15T09:40:48.8436709Z             {
2026-06-15T09:40:48.8436823Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8436919Z               "line": 164
2026-06-15T09:40:48.8437005Z             },
2026-06-15T09:40:48.8437085Z             {
2026-06-15T09:40:48.8437206Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8437291Z               "line": 27
2026-06-15T09:40:48.8437376Z             },
2026-06-15T09:40:48.8437452Z             {
2026-06-15T09:40:48.8437572Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8437653Z               "line": 79
2026-06-15T09:40:48.8437734Z             },
2026-06-15T09:40:48.8437821Z             {
2026-06-15T09:40:48.8437925Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8438030Z               "line": 102
2026-06-15T09:40:48.8438106Z             },
2026-06-15T09:40:48.8438198Z             {
2026-06-15T09:40:48.8438311Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8438401Z               "line": 116
2026-06-15T09:40:48.8438491Z             }
2026-06-15T09:40:48.8438571Z           ]
2026-06-15T09:40:48.8438656Z         },
2026-06-15T09:40:48.8438732Z         "int": {
2026-06-15T09:40:48.8438823Z           "complete": true,
2026-06-15T09:40:48.8438919Z           "evidence": [
2026-06-15T09:40:48.8439056Z             {
2026-06-15T09:40:48.8439186Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T09:40:48.8439261Z               "line": 38
2026-06-15T09:40:48.8439332Z             }
2026-06-15T09:40:48.8439414Z           ]
2026-06-15T09:40:48.8439496Z         },
2026-06-15T09:40:48.8439586Z         "unit": {
2026-06-15T09:40:48.8439671Z           "complete": true,
2026-06-15T09:40:48.8439772Z           "evidence": [
2026-06-15T09:40:48.8439853Z             {
2026-06-15T09:40:48.8439967Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8440053Z               "line": 628
2026-06-15T09:40:48.8440139Z             },
2026-06-15T09:40:48.8440220Z             {
2026-06-15T09:40:48.8440319Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8440407Z               "line": 378
2026-06-15T09:40:48.8440487Z             },
2026-06-15T09:40:48.8440568Z             {
2026-06-15T09:40:48.8440683Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8440764Z               "line": 124
2026-06-15T09:40:48.8440849Z             },
2026-06-15T09:40:48.8440930Z             {
2026-06-15T09:40:48.8441051Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8441131Z               "line": 143
2026-06-15T09:40:48.8441210Z             },
2026-06-15T09:40:48.8441287Z             {
2026-06-15T09:40:48.8441396Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8441613Z               "line": 160
2026-06-15T09:40:48.8441786Z             },
2026-06-15T09:40:48.8441870Z             {
2026-06-15T09:40:48.8441981Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8442067Z               "line": 187
2026-06-15T09:40:48.8442148Z             },
2026-06-15T09:40:48.8442233Z             {
2026-06-15T09:40:48.8442349Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T09:40:48.8442429Z               "line": 206
2026-06-15T09:40:48.8442510Z             },
2026-06-15T09:40:48.8442581Z             {
2026-06-15T09:40:48.8442692Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8442782Z               "line": 229
2026-06-15T09:40:48.8442862Z             }
2026-06-15T09:40:48.8442940Z           ]
2026-06-15T09:40:48.8443016Z         }
2026-06-15T09:40:48.8443100Z       }
2026-06-15T09:40:48.8443177Z     },
2026-06-15T09:40:48.8443265Z     {
2026-06-15T09:40:48.8443387Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T09:40:48.8444015Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T09:40:48.8444113Z       "requiredStages": [
2026-06-15T09:40:48.8444184Z         "impl",
2026-06-15T09:40:48.8444271Z         "unit"
2026-06-15T09:40:48.8444353Z       ],
2026-06-15T09:40:48.8444437Z       "stages": {
2026-06-15T09:40:48.8444528Z         "doc": {
2026-06-15T09:40:48.8444610Z           "complete": false,
2026-06-15T09:40:48.8444700Z           "evidence": []
2026-06-15T09:40:48.8444781Z         },
2026-06-15T09:40:48.8444867Z         "impl": {
2026-06-15T09:40:48.8444944Z           "complete": true,
2026-06-15T09:40:48.8445039Z           "evidence": [
2026-06-15T09:40:48.8445119Z             {
2026-06-15T09:40:48.8445245Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8445339Z               "line": 621
2026-06-15T09:40:48.8445425Z             },
2026-06-15T09:40:48.8445506Z             {
2026-06-15T09:40:48.8445606Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8445701Z               "line": 834
2026-06-15T09:40:48.8445782Z             }
2026-06-15T09:40:48.8445855Z           ]
2026-06-15T09:40:48.8445944Z         },
2026-06-15T09:40:48.8446030Z         "int": {
2026-06-15T09:40:48.8446127Z           "complete": false,
2026-06-15T09:40:48.8446217Z           "evidence": []
2026-06-15T09:40:48.8446301Z         },
2026-06-15T09:40:48.8446388Z         "unit": {
2026-06-15T09:40:48.8446475Z           "complete": true,
2026-06-15T09:40:48.8446569Z           "evidence": [
2026-06-15T09:40:48.8446649Z             {
2026-06-15T09:40:48.8446778Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:40:48.8446864Z               "line": 161
2026-06-15T09:40:48.8446959Z             }
2026-06-15T09:40:48.8447044Z           ]
2026-06-15T09:40:48.8447126Z         }
2026-06-15T09:40:48.8447217Z       }
2026-06-15T09:40:48.8447292Z     },
2026-06-15T09:40:48.8447383Z     {
2026-06-15T09:40:48.8447480Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T09:40:48.8447665Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T09:40:48.8447766Z       "requiredStages": [
2026-06-15T09:40:48.8447846Z         "impl",
2026-06-15T09:40:48.8447922Z         "unit"
2026-06-15T09:40:48.8448003Z       ],
2026-06-15T09:40:48.8448085Z       "stages": {
2026-06-15T09:40:48.8448166Z         "doc": {
2026-06-15T09:40:48.8448251Z           "complete": false,
2026-06-15T09:40:48.8448342Z           "evidence": []
2026-06-15T09:40:48.8448420Z         },
2026-06-15T09:40:48.8448499Z         "impl": {
2026-06-15T09:40:48.8448580Z           "complete": true,
2026-06-15T09:40:48.8448676Z           "evidence": [
2026-06-15T09:40:48.8448758Z             {
2026-06-15T09:40:48.8449037Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8449221Z               "line": 40
2026-06-15T09:40:48.8449306Z             },
2026-06-15T09:40:48.8449383Z             {
2026-06-15T09:40:48.8449484Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8449568Z               "line": 103
2026-06-15T09:40:48.8449645Z             },
2026-06-15T09:40:48.8449722Z             {
2026-06-15T09:40:48.8449836Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8449916Z               "line": 218
2026-06-15T09:40:48.8450004Z             },
2026-06-15T09:40:48.8450084Z             {
2026-06-15T09:40:48.8450203Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8450279Z               "line": 323
2026-06-15T09:40:48.8450366Z             }
2026-06-15T09:40:48.8450442Z           ]
2026-06-15T09:40:48.8450522Z         },
2026-06-15T09:40:48.8450608Z         "int": {
2026-06-15T09:40:48.8450685Z           "complete": false,
2026-06-15T09:40:48.8450780Z           "evidence": []
2026-06-15T09:40:48.8450861Z         },
2026-06-15T09:40:48.8450948Z         "unit": {
2026-06-15T09:40:48.8451047Z           "complete": true,
2026-06-15T09:40:48.8451123Z           "evidence": [
2026-06-15T09:40:48.8451209Z             {
2026-06-15T09:40:48.8451319Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8451409Z               "line": 361
2026-06-15T09:40:48.8451481Z             },
2026-06-15T09:40:48.8451572Z             {
2026-06-15T09:40:48.8451677Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8451757Z               "line": 433
2026-06-15T09:40:48.8451842Z             },
2026-06-15T09:40:48.8451924Z             {
2026-06-15T09:40:48.8452041Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8452135Z               "line": 496
2026-06-15T09:40:48.8452207Z             },
2026-06-15T09:40:48.8452294Z             {
2026-06-15T09:40:48.8452408Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8452498Z               "line": 517
2026-06-15T09:40:48.8452575Z             }
2026-06-15T09:40:48.8452656Z           ]
2026-06-15T09:40:48.8452731Z         }
2026-06-15T09:40:48.8452812Z       }
2026-06-15T09:40:48.8452889Z     },
2026-06-15T09:40:48.8452971Z     {
2026-06-15T09:40:48.8453093Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T09:40:48.8453204Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T09:40:48.8453309Z       "requiredStages": [
2026-06-15T09:40:48.8453385Z         "impl",
2026-06-15T09:40:48.8453466Z         "unit"
2026-06-15T09:40:48.8453557Z       ],
2026-06-15T09:40:48.8453633Z       "stages": {
2026-06-15T09:40:48.8453714Z         "doc": {
2026-06-15T09:40:48.8453790Z           "complete": false,
2026-06-15T09:40:48.8453891Z           "evidence": []
2026-06-15T09:40:48.8453966Z         },
2026-06-15T09:40:48.8454057Z         "impl": {
2026-06-15T09:40:48.8454149Z           "complete": true,
2026-06-15T09:40:48.8454249Z           "evidence": [
2026-06-15T09:40:48.8454337Z             {
2026-06-15T09:40:48.8454442Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8454538Z               "line": 116
2026-06-15T09:40:48.8454622Z             },
2026-06-15T09:40:48.8454707Z             {
2026-06-15T09:40:48.8454807Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8454894Z               "line": 211
2026-06-15T09:40:48.8454978Z             }
2026-06-15T09:40:48.8455050Z           ]
2026-06-15T09:40:48.8455132Z         },
2026-06-15T09:40:48.8455212Z         "int": {
2026-06-15T09:40:48.8455303Z           "complete": false,
2026-06-15T09:40:48.8455393Z           "evidence": []
2026-06-15T09:40:48.8455471Z         },
2026-06-15T09:40:48.8455551Z         "unit": {
2026-06-15T09:40:48.8455646Z           "complete": true,
2026-06-15T09:40:48.8455723Z           "evidence": [
2026-06-15T09:40:48.8455805Z             {
2026-06-15T09:40:48.8456018Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8456110Z               "line": 388
2026-06-15T09:40:48.8456261Z             },
2026-06-15T09:40:48.8456347Z             {
2026-06-15T09:40:48.8456453Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8456547Z               "line": 469
2026-06-15T09:40:48.8456629Z             }
2026-06-15T09:40:48.8456711Z           ]
2026-06-15T09:40:48.8456796Z         }
2026-06-15T09:40:48.8456871Z       }
2026-06-15T09:40:48.8456958Z     },
2026-06-15T09:40:48.8457035Z     {
2026-06-15T09:40:48.8457153Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T09:40:48.8458392Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T09:40:48.8458501Z       "requiredStages": [
2026-06-15T09:40:48.8458592Z         "impl",
2026-06-15T09:40:48.8458675Z         "unit"
2026-06-15T09:40:48.8458754Z       ],
2026-06-15T09:40:48.8458830Z       "stages": {
2026-06-15T09:40:48.8458917Z         "doc": {
2026-06-15T09:40:48.8459083Z           "complete": true,
2026-06-15T09:40:48.8459164Z           "evidence": [
2026-06-15T09:40:48.8459256Z             {
2026-06-15T09:40:48.8459356Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8459445Z               "line": 206
2026-06-15T09:40:48.8459521Z             }
2026-06-15T09:40:48.8459602Z           ]
2026-06-15T09:40:48.8459673Z         },
2026-06-15T09:40:48.8459757Z         "impl": {
2026-06-15T09:40:48.8459852Z           "complete": true,
2026-06-15T09:40:48.8459934Z           "evidence": [
2026-06-15T09:40:48.8460011Z             {
2026-06-15T09:40:48.8460129Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8460219Z               "line": 593
2026-06-15T09:40:48.8460316Z             },
2026-06-15T09:40:48.8460386Z             {
2026-06-15T09:40:48.8460505Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8460588Z               "line": 685
2026-06-15T09:40:48.8460668Z             },
2026-06-15T09:40:48.8460748Z             {
2026-06-15T09:40:48.8460869Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.8460964Z               "line": 183
2026-06-15T09:40:48.8461039Z             }
2026-06-15T09:40:48.8461120Z           ]
2026-06-15T09:40:48.8461193Z         },
2026-06-15T09:40:48.8461273Z         "int": {
2026-06-15T09:40:48.8465314Z           "complete": false,
2026-06-15T09:40:48.8465426Z           "evidence": []
2026-06-15T09:40:48.8465515Z         },
2026-06-15T09:40:48.8465605Z         "unit": {
2026-06-15T09:40:48.8465702Z           "complete": true,
2026-06-15T09:40:48.8465787Z           "evidence": [
2026-06-15T09:40:48.8465868Z             {
2026-06-15T09:40:48.8466016Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8466111Z               "line": 734
2026-06-15T09:40:48.8466211Z             },
2026-06-15T09:40:48.8466293Z             {
2026-06-15T09:40:48.8466435Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:40:48.8466526Z               "line": 44
2026-06-15T09:40:48.8466617Z             },
2026-06-15T09:40:48.8466698Z             {
2026-06-15T09:40:48.8466817Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:40:48.8466908Z               "line": 57
2026-06-15T09:40:48.8466985Z             },
2026-06-15T09:40:48.8467070Z             {
2026-06-15T09:40:48.8467203Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T09:40:48.8467290Z               "line": 54
2026-06-15T09:40:48.8467366Z             }
2026-06-15T09:40:48.8467446Z           ]
2026-06-15T09:40:48.8467528Z         }
2026-06-15T09:40:48.8467609Z       }
2026-06-15T09:40:48.8467685Z     },
2026-06-15T09:40:48.8467908Z     {
2026-06-15T09:40:48.8468038Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T09:40:48.8468371Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T09:40:48.8468460Z       "requiredStages": [
2026-06-15T09:40:48.8468547Z         "impl",
2026-06-15T09:40:48.8468628Z         "unit"
2026-06-15T09:40:48.8468714Z       ],
2026-06-15T09:40:48.8468794Z       "stages": {
2026-06-15T09:40:48.8468876Z         "doc": {
2026-06-15T09:40:48.8469038Z           "complete": false,
2026-06-15T09:40:48.8469128Z           "evidence": []
2026-06-15T09:40:48.8469205Z         },
2026-06-15T09:40:48.8469286Z         "impl": {
2026-06-15T09:40:48.8469376Z           "complete": true,
2026-06-15T09:40:48.8469457Z           "evidence": [
2026-06-15T09:40:48.8469535Z             {
2026-06-15T09:40:48.8469657Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8469738Z               "line": 26
2026-06-15T09:40:48.8469821Z             },
2026-06-15T09:40:48.8469902Z             {
2026-06-15T09:40:48.8470019Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8470104Z               "line": 135
2026-06-15T09:40:48.8470186Z             },
2026-06-15T09:40:48.8470261Z             {
2026-06-15T09:40:48.8470384Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8470470Z               "line": 26
2026-06-15T09:40:48.8470547Z             },
2026-06-15T09:40:48.8470632Z             {
2026-06-15T09:40:48.8470746Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8470842Z               "line": 237
2026-06-15T09:40:48.8470928Z             }
2026-06-15T09:40:48.8471008Z           ]
2026-06-15T09:40:48.8471085Z         },
2026-06-15T09:40:48.8471171Z         "int": {
2026-06-15T09:40:48.8471266Z           "complete": false,
2026-06-15T09:40:48.8471356Z           "evidence": []
2026-06-15T09:40:48.8471443Z         },
2026-06-15T09:40:48.8471528Z         "unit": {
2026-06-15T09:40:48.8471628Z           "complete": true,
2026-06-15T09:40:48.8471714Z           "evidence": [
2026-06-15T09:40:48.8471792Z             {
2026-06-15T09:40:48.8471905Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8471986Z               "line": 161
2026-06-15T09:40:48.8472063Z             },
2026-06-15T09:40:48.8472144Z             {
2026-06-15T09:40:48.8472258Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8472354Z               "line": 170
2026-06-15T09:40:48.8472426Z             },
2026-06-15T09:40:48.8472515Z             {
2026-06-15T09:40:48.8472620Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8472712Z               "line": 179
2026-06-15T09:40:48.8472792Z             },
2026-06-15T09:40:48.8472863Z             {
2026-06-15T09:40:48.8472967Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8473044Z               "line": 190
2026-06-15T09:40:48.8473124Z             },
2026-06-15T09:40:48.8473203Z             {
2026-06-15T09:40:48.8473308Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8473399Z               "line": 199
2026-06-15T09:40:48.8473485Z             },
2026-06-15T09:40:48.8473570Z             {
2026-06-15T09:40:48.8473676Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8473766Z               "line": 216
2026-06-15T09:40:48.8473842Z             },
2026-06-15T09:40:48.8473927Z             {
2026-06-15T09:40:48.8474043Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T09:40:48.8474129Z               "line": 242
2026-06-15T09:40:48.8474209Z             },
2026-06-15T09:40:48.8474291Z             {
2026-06-15T09:40:48.8474391Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8474481Z               "line": 295
2026-06-15T09:40:48.8474562Z             },
2026-06-15T09:40:48.8474645Z             {
2026-06-15T09:40:48.8474753Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8474950Z               "line": 244
2026-06-15T09:40:48.8475030Z             },
2026-06-15T09:40:48.8475206Z             {
2026-06-15T09:40:48.8475321Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8475401Z               "line": 265
2026-06-15T09:40:48.8475486Z             },
2026-06-15T09:40:48.8475567Z             {
2026-06-15T09:40:48.8475690Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8475775Z               "line": 293
2026-06-15T09:40:48.8475855Z             },
2026-06-15T09:40:48.8475937Z             {
2026-06-15T09:40:48.8476052Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8476132Z               "line": 317
2026-06-15T09:40:48.8476204Z             },
2026-06-15T09:40:48.8476295Z             {
2026-06-15T09:40:48.8476418Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T09:40:48.8476509Z               "line": 327
2026-06-15T09:40:48.8476591Z             },
2026-06-15T09:40:48.8476681Z             {
2026-06-15T09:40:48.8476799Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.8476892Z               "line": 540
2026-06-15T09:40:48.8476972Z             }
2026-06-15T09:40:48.8477039Z           ]
2026-06-15T09:40:48.8477124Z         }
2026-06-15T09:40:48.8477211Z       }
2026-06-15T09:40:48.8477282Z     },
2026-06-15T09:40:48.8477358Z     {
2026-06-15T09:40:48.8477477Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T09:40:48.8477620Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T09:40:48.8477702Z       "requiredStages": [
2026-06-15T09:40:48.8477792Z         "impl",
2026-06-15T09:40:48.8477869Z         "unit"
2026-06-15T09:40:48.8477949Z       ],
2026-06-15T09:40:48.8478040Z       "stages": {
2026-06-15T09:40:48.8478122Z         "doc": {
2026-06-15T09:40:48.8478222Z           "complete": false,
2026-06-15T09:40:48.8478301Z           "evidence": []
2026-06-15T09:40:48.8478386Z         },
2026-06-15T09:40:48.8478483Z         "impl": {
2026-06-15T09:40:48.8478569Z           "complete": true,
2026-06-15T09:40:48.8478668Z           "evidence": [
2026-06-15T09:40:48.8478749Z             {
2026-06-15T09:40:48.8478865Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.8479016Z               "line": 25
2026-06-15T09:40:48.8479098Z             },
2026-06-15T09:40:48.8479179Z             {
2026-06-15T09:40:48.8479298Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8479388Z               "line": 26
2026-06-15T09:40:48.8479460Z             },
2026-06-15T09:40:48.8479546Z             {
2026-06-15T09:40:48.8479645Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8479727Z               "line": 159
2026-06-15T09:40:48.8479799Z             }
2026-06-15T09:40:48.8479879Z           ]
2026-06-15T09:40:48.8479965Z         },
2026-06-15T09:40:48.8480047Z         "int": {
2026-06-15T09:40:48.8480133Z           "complete": false,
2026-06-15T09:40:48.8480227Z           "evidence": []
2026-06-15T09:40:48.8480308Z         },
2026-06-15T09:40:48.8480400Z         "unit": {
2026-06-15T09:40:48.8480490Z           "complete": true,
2026-06-15T09:40:48.8480570Z           "evidence": [
2026-06-15T09:40:48.8480650Z             {
2026-06-15T09:40:48.8480760Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.8480840Z               "line": 188
2026-06-15T09:40:48.8480925Z             },
2026-06-15T09:40:48.8481006Z             {
2026-06-15T09:40:48.8481097Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.8481192Z               "line": 240
2026-06-15T09:40:48.8481273Z             },
2026-06-15T09:40:48.8481354Z             {
2026-06-15T09:40:48.8481459Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8481554Z               "line": 186
2026-06-15T09:40:48.8481630Z             }
2026-06-15T09:40:48.8481708Z           ]
2026-06-15T09:40:48.8481788Z         }
2026-06-15T09:40:48.8481975Z       }
2026-06-15T09:40:48.8482061Z     },
2026-06-15T09:40:48.8482142Z     {
2026-06-15T09:40:48.8482246Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T09:40:48.8482512Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T09:40:48.8482609Z       "requiredStages": [
2026-06-15T09:40:48.8482691Z         "impl",
2026-06-15T09:40:48.8482760Z         "unit"
2026-06-15T09:40:48.8482846Z       ],
2026-06-15T09:40:48.8482924Z       "stages": {
2026-06-15T09:40:48.8483005Z         "doc": {
2026-06-15T09:40:48.8483103Z           "complete": false,
2026-06-15T09:40:48.8483190Z           "evidence": []
2026-06-15T09:40:48.8483267Z         },
2026-06-15T09:40:48.8483348Z         "impl": {
2026-06-15T09:40:48.8483442Z           "complete": true,
2026-06-15T09:40:48.8483522Z           "evidence": [
2026-06-15T09:40:48.8483604Z             {
2026-06-15T09:40:48.8483721Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8483801Z               "line": 48
2026-06-15T09:40:48.8483897Z             },
2026-06-15T09:40:48.8483974Z             {
2026-06-15T09:40:48.8484088Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8484183Z               "line": 55
2026-06-15T09:40:48.8484261Z             },
2026-06-15T09:40:48.8484341Z             {
2026-06-15T09:40:48.8484440Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8484517Z               "line": 74
2026-06-15T09:40:48.8484590Z             },
2026-06-15T09:40:48.8484665Z             {
2026-06-15T09:40:48.8484774Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8484870Z               "line": 91
2026-06-15T09:40:48.8484951Z             }
2026-06-15T09:40:48.8485023Z           ]
2026-06-15T09:40:48.8485108Z         },
2026-06-15T09:40:48.8485190Z         "int": {
2026-06-15T09:40:48.8485289Z           "complete": false,
2026-06-15T09:40:48.8485365Z           "evidence": []
2026-06-15T09:40:48.8485451Z         },
2026-06-15T09:40:48.8485539Z         "unit": {
2026-06-15T09:40:48.8485632Z           "complete": true,
2026-06-15T09:40:48.8485714Z           "evidence": [
2026-06-15T09:40:48.8485805Z             {
2026-06-15T09:40:48.8485910Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8485995Z               "line": 149
2026-06-15T09:40:48.8486079Z             },
2026-06-15T09:40:48.8486166Z             {
2026-06-15T09:40:48.8486269Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8486354Z               "line": 166
2026-06-15T09:40:48.8486435Z             },
2026-06-15T09:40:48.8486521Z             {
2026-06-15T09:40:48.8486631Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8486725Z               "line": 176
2026-06-15T09:40:48.8486813Z             },
2026-06-15T09:40:48.8486893Z             {
2026-06-15T09:40:48.8487002Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8487089Z               "line": 194
2026-06-15T09:40:48.8487174Z             },
2026-06-15T09:40:48.8487265Z             {
2026-06-15T09:40:48.8487369Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8487471Z               "line": 207
2026-06-15T09:40:48.8487551Z             }
2026-06-15T09:40:48.8487627Z           ]
2026-06-15T09:40:48.8487708Z         }
2026-06-15T09:40:48.8487790Z       }
2026-06-15T09:40:48.8487866Z     },
2026-06-15T09:40:48.8487951Z     {
2026-06-15T09:40:48.8488067Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T09:40:48.8488252Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T09:40:48.8488348Z       "requiredStages": [
2026-06-15T09:40:48.8488429Z         "impl",
2026-06-15T09:40:48.8488509Z         "unit"
2026-06-15T09:40:48.8488586Z       ],
2026-06-15T09:40:48.8488668Z       "stages": {
2026-06-15T09:40:48.8488749Z         "doc": {
2026-06-15T09:40:48.8488829Z           "complete": false,
2026-06-15T09:40:48.8488913Z           "evidence": []
2026-06-15T09:40:48.8489176Z         },
2026-06-15T09:40:48.8489275Z         "impl": {
2026-06-15T09:40:48.8489358Z           "complete": true,
2026-06-15T09:40:48.8489538Z           "evidence": [
2026-06-15T09:40:48.8489619Z             {
2026-06-15T09:40:48.8489744Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8489834Z               "line": 416
2026-06-15T09:40:48.8489914Z             },
2026-06-15T09:40:48.8489992Z             {
2026-06-15T09:40:48.8490111Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8490196Z               "line": 26
2026-06-15T09:40:48.8490273Z             }
2026-06-15T09:40:48.8490350Z           ]
2026-06-15T09:40:48.8490430Z         },
2026-06-15T09:40:48.8490511Z         "int": {
2026-06-15T09:40:48.8490592Z           "complete": false,
2026-06-15T09:40:48.8490679Z           "evidence": []
2026-06-15T09:40:48.8490759Z         },
2026-06-15T09:40:48.8490835Z         "unit": {
2026-06-15T09:40:48.8490917Z           "complete": true,
2026-06-15T09:40:48.8491017Z           "evidence": [
2026-06-15T09:40:48.8491088Z             {
2026-06-15T09:40:48.8491202Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8491283Z               "line": 150
2026-06-15T09:40:48.8491363Z             },
2026-06-15T09:40:48.8491442Z             {
2026-06-15T09:40:48.8491551Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8491638Z               "line": 208
2026-06-15T09:40:48.8491706Z             }
2026-06-15T09:40:48.8491794Z           ]
2026-06-15T09:40:48.8491871Z         }
2026-06-15T09:40:48.8491953Z       }
2026-06-15T09:40:48.8492034Z     },
2026-06-15T09:40:48.8492114Z     {
2026-06-15T09:40:48.8492239Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T09:40:48.8493626Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T09:40:48.8493731Z       "requiredStages": [
2026-06-15T09:40:48.8493813Z         "doc",
2026-06-15T09:40:48.8493899Z         "impl",
2026-06-15T09:40:48.8493978Z         "unit"
2026-06-15T09:40:48.8494054Z       ],
2026-06-15T09:40:48.8494145Z       "stages": {
2026-06-15T09:40:48.8494226Z         "doc": {
2026-06-15T09:40:48.8494310Z           "complete": true,
2026-06-15T09:40:48.8494400Z           "evidence": [
2026-06-15T09:40:48.8494481Z             {
2026-06-15T09:40:48.8494587Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8494671Z               "line": 214
2026-06-15T09:40:48.8494757Z             }
2026-06-15T09:40:48.8494840Z           ]
2026-06-15T09:40:48.8494916Z         },
2026-06-15T09:40:48.8494995Z         "impl": {
2026-06-15T09:40:48.8495082Z           "complete": true,
2026-06-15T09:40:48.8495183Z           "evidence": [
2026-06-15T09:40:48.8495259Z             {
2026-06-15T09:40:48.8495382Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8495464Z               "line": 54
2026-06-15T09:40:48.8495544Z             },
2026-06-15T09:40:48.8495625Z             {
2026-06-15T09:40:48.8495741Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8495822Z               "line": 511
2026-06-15T09:40:48.8495901Z             },
2026-06-15T09:40:48.8495983Z             {
2026-06-15T09:40:48.8496103Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8496188Z               "line": 36
2026-06-15T09:40:48.8496269Z             },
2026-06-15T09:40:48.8496346Z             {
2026-06-15T09:40:48.8496470Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8496555Z               "line": 59
2026-06-15T09:40:48.8496630Z             },
2026-06-15T09:40:48.8496706Z             {
2026-06-15T09:40:48.8496928Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8497024Z               "line": 83
2026-06-15T09:40:48.8497200Z             },
2026-06-15T09:40:48.8497290Z             {
2026-06-15T09:40:48.8497406Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8497496Z               "line": 140
2026-06-15T09:40:48.8497582Z             },
2026-06-15T09:40:48.8497663Z             {
2026-06-15T09:40:48.8497773Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8497858Z               "line": 159
2026-06-15T09:40:48.8497944Z             },
2026-06-15T09:40:48.8498022Z             {
2026-06-15T09:40:48.8498135Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8498226Z               "line": 384
2026-06-15T09:40:48.8498302Z             },
2026-06-15T09:40:48.8498379Z             {
2026-06-15T09:40:48.8498493Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8498588Z               "line": 526
2026-06-15T09:40:48.8498675Z             },
2026-06-15T09:40:48.8498750Z             {
2026-06-15T09:40:48.8498874Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8499041Z               "line": 572
2026-06-15T09:40:48.8499127Z             },
2026-06-15T09:40:48.8499208Z             {
2026-06-15T09:40:48.8499323Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8499417Z               "line": 300
2026-06-15T09:40:48.8499497Z             },
2026-06-15T09:40:48.8499578Z             {
2026-06-15T09:40:48.8499680Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:40:48.8499760Z               "line": 41
2026-06-15T09:40:48.8499840Z             }
2026-06-15T09:40:48.8499927Z           ]
2026-06-15T09:40:48.8500004Z         },
2026-06-15T09:40:48.8500084Z         "int": {
2026-06-15T09:40:48.8500179Z           "complete": false,
2026-06-15T09:40:48.8500271Z           "evidence": []
2026-06-15T09:40:48.8500356Z         },
2026-06-15T09:40:48.8500446Z         "unit": {
2026-06-15T09:40:48.8500537Z           "complete": true,
2026-06-15T09:40:48.8500633Z           "evidence": [
2026-06-15T09:40:48.8500714Z             {
2026-06-15T09:40:48.8500843Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8500924Z               "line": 785
2026-06-15T09:40:48.8501009Z             },
2026-06-15T09:40:48.8501086Z             {
2026-06-15T09:40:48.8501201Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8501291Z               "line": 826
2026-06-15T09:40:48.8501371Z             },
2026-06-15T09:40:48.8501453Z             {
2026-06-15T09:40:48.8501563Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8501681Z               "line": 900
2026-06-15T09:40:48.8501762Z             }
2026-06-15T09:40:48.8501852Z           ]
2026-06-15T09:40:48.8501932Z         }
2026-06-15T09:40:48.8502012Z       }
2026-06-15T09:40:48.8502097Z     },
2026-06-15T09:40:48.8502174Z     {
2026-06-15T09:40:48.8502285Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T09:40:48.8504059Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T09:40:48.8504163Z       "requiredStages": [
2026-06-15T09:40:48.8504253Z         "impl",
2026-06-15T09:40:48.8504340Z         "unit"
2026-06-15T09:40:48.8504421Z       ],
2026-06-15T09:40:48.8504511Z       "stages": {
2026-06-15T09:40:48.8504586Z         "doc": {
2026-06-15T09:40:48.8504795Z           "complete": false,
2026-06-15T09:40:48.8504884Z           "evidence": []
2026-06-15T09:40:48.8505051Z         },
2026-06-15T09:40:48.8505123Z         "impl": {
2026-06-15T09:40:48.8505217Z           "complete": true,
2026-06-15T09:40:48.8505312Z           "evidence": [
2026-06-15T09:40:48.8505390Z             {
2026-06-15T09:40:48.8505504Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8505584Z               "line": 31
2026-06-15T09:40:48.8505671Z             }
2026-06-15T09:40:48.8505757Z           ]
2026-06-15T09:40:48.8505843Z         },
2026-06-15T09:40:48.8505928Z         "int": {
2026-06-15T09:40:48.8506019Z           "complete": false,
2026-06-15T09:40:48.8506114Z           "evidence": []
2026-06-15T09:40:48.8506195Z         },
2026-06-15T09:40:48.8506281Z         "unit": {
2026-06-15T09:40:48.8506372Z           "complete": true,
2026-06-15T09:40:48.8506461Z           "evidence": [
2026-06-15T09:40:48.8506553Z             {
2026-06-15T09:40:48.8506663Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8506762Z               "line": 181
2026-06-15T09:40:48.8506843Z             }
2026-06-15T09:40:48.8506926Z           ]
2026-06-15T09:40:48.8507002Z         }
2026-06-15T09:40:48.8507091Z       }
2026-06-15T09:40:48.8507172Z     },
2026-06-15T09:40:48.8507248Z     {
2026-06-15T09:40:48.8507362Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T09:40:48.8507508Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T09:40:48.8507608Z       "requiredStages": [
2026-06-15T09:40:48.8507690Z         "impl",
2026-06-15T09:40:48.8507770Z         "unit"
2026-06-15T09:40:48.8507860Z       ],
2026-06-15T09:40:48.8507943Z       "stages": {
2026-06-15T09:40:48.8508018Z         "doc": {
2026-06-15T09:40:48.8508098Z           "complete": false,
2026-06-15T09:40:48.8508179Z           "evidence": []
2026-06-15T09:40:48.8508262Z         },
2026-06-15T09:40:48.8508342Z         "impl": {
2026-06-15T09:40:48.8508427Z           "complete": true,
2026-06-15T09:40:48.8508519Z           "evidence": [
2026-06-15T09:40:48.8508596Z             {
2026-06-15T09:40:48.8508719Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8508809Z               "line": 49
2026-06-15T09:40:48.8508887Z             },
2026-06-15T09:40:48.8509029Z             {
2026-06-15T09:40:48.8509143Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8509226Z               "line": 81
2026-06-15T09:40:48.8509315Z             }
2026-06-15T09:40:48.8509391Z           ]
2026-06-15T09:40:48.8509483Z         },
2026-06-15T09:40:48.8509564Z         "int": {
2026-06-15T09:40:48.8509658Z           "complete": false,
2026-06-15T09:40:48.8509739Z           "evidence": []
2026-06-15T09:40:48.8509808Z         },
2026-06-15T09:40:48.8509893Z         "unit": {
2026-06-15T09:40:48.8509972Z           "complete": true,
2026-06-15T09:40:48.8510067Z           "evidence": [
2026-06-15T09:40:48.8510139Z             {
2026-06-15T09:40:48.8510245Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8510330Z               "line": 156
2026-06-15T09:40:48.8510415Z             },
2026-06-15T09:40:48.8510492Z             {
2026-06-15T09:40:48.8510597Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8510677Z               "line": 173
2026-06-15T09:40:48.8510754Z             },
2026-06-15T09:40:48.8510836Z             {
2026-06-15T09:40:48.8510954Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8511035Z               "line": 196
2026-06-15T09:40:48.8511117Z             }
2026-06-15T09:40:48.8511198Z           ]
2026-06-15T09:40:48.8511279Z         }
2026-06-15T09:40:48.8511359Z       }
2026-06-15T09:40:48.8511437Z     },
2026-06-15T09:40:48.8511517Z     {
2026-06-15T09:40:48.8511636Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T09:40:48.8511809Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T09:40:48.8511998Z       "requiredStages": [
2026-06-15T09:40:48.8512086Z         "impl",
2026-06-15T09:40:48.8512166Z         "unit"
2026-06-15T09:40:48.8512336Z       ],
2026-06-15T09:40:48.8512417Z       "stages": {
2026-06-15T09:40:48.8512497Z         "doc": {
2026-06-15T09:40:48.8512591Z           "complete": false,
2026-06-15T09:40:48.8512677Z           "evidence": []
2026-06-15T09:40:48.8512768Z         },
2026-06-15T09:40:48.8512845Z         "impl": {
2026-06-15T09:40:48.8512939Z           "complete": true,
2026-06-15T09:40:48.8513030Z           "evidence": [
2026-06-15T09:40:48.8513112Z             {
2026-06-15T09:40:48.8513235Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8513316Z               "line": 120
2026-06-15T09:40:48.8513393Z             }
2026-06-15T09:40:48.8513469Z           ]
2026-06-15T09:40:48.8513554Z         },
2026-06-15T09:40:48.8513640Z         "int": {
2026-06-15T09:40:48.8513731Z           "complete": false,
2026-06-15T09:40:48.8513822Z           "evidence": []
2026-06-15T09:40:48.8513911Z         },
2026-06-15T09:40:48.8514004Z         "unit": {
2026-06-15T09:40:48.8514103Z           "complete": true,
2026-06-15T09:40:48.8514184Z           "evidence": [
2026-06-15T09:40:48.8514265Z             {
2026-06-15T09:40:48.8514380Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8514469Z               "line": 212
2026-06-15T09:40:48.8514541Z             },
2026-06-15T09:40:48.8514624Z             {
2026-06-15T09:40:48.8514737Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8514828Z               "line": 221
2026-06-15T09:40:48.8514900Z             },
2026-06-15T09:40:48.8514981Z             {
2026-06-15T09:40:48.8515104Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8515198Z               "line": 229
2026-06-15T09:40:48.8515275Z             },
2026-06-15T09:40:48.8515355Z             {
2026-06-15T09:40:48.8515463Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8515558Z               "line": 239
2026-06-15T09:40:48.8515640Z             },
2026-06-15T09:40:48.8515726Z             {
2026-06-15T09:40:48.8515834Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T09:40:48.8515917Z               "line": 249
2026-06-15T09:40:48.8515993Z             }
2026-06-15T09:40:48.8516078Z           ]
2026-06-15T09:40:48.8516163Z         }
2026-06-15T09:40:48.8516241Z       }
2026-06-15T09:40:48.8516327Z     },
2026-06-15T09:40:48.8516407Z     {
2026-06-15T09:40:48.8516521Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T09:40:48.8516679Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T09:40:48.8516774Z       "requiredStages": [
2026-06-15T09:40:48.8516861Z         "impl",
2026-06-15T09:40:48.8516947Z         "unit"
2026-06-15T09:40:48.8517031Z       ],
2026-06-15T09:40:48.8517103Z       "stages": {
2026-06-15T09:40:48.8517186Z         "doc": {
2026-06-15T09:40:48.8517276Z           "complete": false,
2026-06-15T09:40:48.8517375Z           "evidence": []
2026-06-15T09:40:48.8517457Z         },
2026-06-15T09:40:48.8517538Z         "impl": {
2026-06-15T09:40:48.8517642Z           "complete": true,
2026-06-15T09:40:48.8517722Z           "evidence": [
2026-06-15T09:40:48.8517798Z             {
2026-06-15T09:40:48.8517903Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8517983Z               "line": 14
2026-06-15T09:40:48.8518068Z             },
2026-06-15T09:40:48.8518145Z             {
2026-06-15T09:40:48.8518245Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8518321Z               "line": 63
2026-06-15T09:40:48.8518406Z             }
2026-06-15T09:40:48.8518483Z           ]
2026-06-15T09:40:48.8518564Z         },
2026-06-15T09:40:48.8518645Z         "int": {
2026-06-15T09:40:48.8518721Z           "complete": false,
2026-06-15T09:40:48.8518817Z           "evidence": []
2026-06-15T09:40:48.8518888Z         },
2026-06-15T09:40:48.8519074Z         "unit": {
2026-06-15T09:40:48.8519265Z           "complete": true,
2026-06-15T09:40:48.8519360Z           "evidence": [
2026-06-15T09:40:48.8519523Z             {
2026-06-15T09:40:48.8519627Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8519718Z               "line": 164
2026-06-15T09:40:48.8519800Z             },
2026-06-15T09:40:48.8519884Z             {
2026-06-15T09:40:48.8519985Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8520076Z               "line": 198
2026-06-15T09:40:48.8520162Z             },
2026-06-15T09:40:48.8520242Z             {
2026-06-15T09:40:48.8520343Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.8520420Z               "line": 220
2026-06-15T09:40:48.8520500Z             }
2026-06-15T09:40:48.8520580Z           ]
2026-06-15T09:40:48.8520660Z         }
2026-06-15T09:40:48.8520742Z       }
2026-06-15T09:40:48.8520824Z     },
2026-06-15T09:40:48.8520899Z     {
2026-06-15T09:40:48.8521004Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T09:40:48.8522331Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T09:40:48.8522434Z       "requiredStages": [],
2026-06-15T09:40:48.8522520Z       "stages": {
2026-06-15T09:40:48.8522602Z         "doc": {
2026-06-15T09:40:48.8522684Z           "complete": true,
2026-06-15T09:40:48.8522777Z           "evidence": [
2026-06-15T09:40:48.8522858Z             {
2026-06-15T09:40:48.8522963Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8523048Z               "line": 165
2026-06-15T09:40:48.8523128Z             }
2026-06-15T09:40:48.8523213Z           ]
2026-06-15T09:40:48.8523290Z         },
2026-06-15T09:40:48.8523381Z         "impl": {
2026-06-15T09:40:48.8523466Z           "complete": false,
2026-06-15T09:40:48.8523566Z           "evidence": []
2026-06-15T09:40:48.8523653Z         },
2026-06-15T09:40:48.8523724Z         "int": {
2026-06-15T09:40:48.8523819Z           "complete": false,
2026-06-15T09:40:48.8523895Z           "evidence": []
2026-06-15T09:40:48.8523977Z         },
2026-06-15T09:40:48.8524057Z         "unit": {
2026-06-15T09:40:48.8524148Z           "complete": false,
2026-06-15T09:40:48.8524230Z           "evidence": []
2026-06-15T09:40:48.8524310Z         }
2026-06-15T09:40:48.8524386Z       }
2026-06-15T09:40:48.8524462Z     },
2026-06-15T09:40:48.8524539Z     {
2026-06-15T09:40:48.8524653Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T09:40:48.8524864Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T09:40:48.8524963Z       "requiredStages": [
2026-06-15T09:40:48.8525044Z         "impl",
2026-06-15T09:40:48.8525140Z         "unit"
2026-06-15T09:40:48.8525213Z       ],
2026-06-15T09:40:48.8525302Z       "stages": {
2026-06-15T09:40:48.8525393Z         "doc": {
2026-06-15T09:40:48.8525479Z           "complete": false,
2026-06-15T09:40:48.8525560Z           "evidence": []
2026-06-15T09:40:48.8525645Z         },
2026-06-15T09:40:48.8525730Z         "impl": {
2026-06-15T09:40:48.8525806Z           "complete": true,
2026-06-15T09:40:48.8525892Z           "evidence": [
2026-06-15T09:40:48.8525971Z             {
2026-06-15T09:40:48.8526085Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8526176Z               "line": 76
2026-06-15T09:40:48.8526257Z             },
2026-06-15T09:40:48.8526343Z             {
2026-06-15T09:40:48.8526457Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8526549Z               "line": 167
2026-06-15T09:40:48.8526629Z             },
2026-06-15T09:40:48.8526714Z             {
2026-06-15T09:40:48.8526830Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8527015Z               "line": 233
2026-06-15T09:40:48.8527096Z             },
2026-06-15T09:40:48.8527244Z             {
2026-06-15T09:40:48.8527358Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8527441Z               "line": 272
2026-06-15T09:40:48.8527526Z             }
2026-06-15T09:40:48.8527606Z           ]
2026-06-15T09:40:48.8527682Z         },
2026-06-15T09:40:48.8527765Z         "int": {
2026-06-15T09:40:48.8527845Z           "complete": false,
2026-06-15T09:40:48.8527935Z           "evidence": []
2026-06-15T09:40:48.8528017Z         },
2026-06-15T09:40:48.8528103Z         "unit": {
2026-06-15T09:40:48.8528198Z           "complete": true,
2026-06-15T09:40:48.8528287Z           "evidence": [
2026-06-15T09:40:48.8528368Z             {
2026-06-15T09:40:48.8528477Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8528562Z               "line": 321
2026-06-15T09:40:48.8528647Z             },
2026-06-15T09:40:48.8528729Z             {
2026-06-15T09:40:48.8528844Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8528933Z               "line": 329
2026-06-15T09:40:48.8529092Z             },
2026-06-15T09:40:48.8529177Z             {
2026-06-15T09:40:48.8529291Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8529382Z               "line": 356
2026-06-15T09:40:48.8529463Z             },
2026-06-15T09:40:48.8529548Z             {
2026-06-15T09:40:48.8529654Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8529744Z               "line": 395
2026-06-15T09:40:48.8529825Z             },
2026-06-15T09:40:48.8533220Z             {
2026-06-15T09:40:48.8533375Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8533465Z               "line": 406
2026-06-15T09:40:48.8533547Z             },
2026-06-15T09:40:48.8533627Z             {
2026-06-15T09:40:48.8533749Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8533855Z               "line": 418
2026-06-15T09:40:48.8533942Z             },
2026-06-15T09:40:48.8534021Z             {
2026-06-15T09:40:48.8534131Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T09:40:48.8534227Z               "line": 442
2026-06-15T09:40:48.8534308Z             }
2026-06-15T09:40:48.8534384Z           ]
2026-06-15T09:40:48.8534465Z         }
2026-06-15T09:40:48.8534546Z       }
2026-06-15T09:40:48.8534623Z     },
2026-06-15T09:40:48.8534698Z     {
2026-06-15T09:40:48.8534809Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T09:40:48.8534956Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T09:40:48.8535051Z       "requiredStages": [
2026-06-15T09:40:48.8535133Z         "impl",
2026-06-15T09:40:48.8535213Z         "int"
2026-06-15T09:40:48.8535294Z       ],
2026-06-15T09:40:48.8535375Z       "stages": {
2026-06-15T09:40:48.8535463Z         "doc": {
2026-06-15T09:40:48.8535557Z           "complete": false,
2026-06-15T09:40:48.8535652Z           "evidence": []
2026-06-15T09:40:48.8535734Z         },
2026-06-15T09:40:48.8535824Z         "impl": {
2026-06-15T09:40:48.8535929Z           "complete": true,
2026-06-15T09:40:48.8536010Z           "evidence": [
2026-06-15T09:40:48.8536092Z             {
2026-06-15T09:40:48.8536205Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8536285Z               "line": 22
2026-06-15T09:40:48.8536366Z             }
2026-06-15T09:40:48.8536443Z           ]
2026-06-15T09:40:48.8536522Z         },
2026-06-15T09:40:48.8536607Z         "int": {
2026-06-15T09:40:48.8536698Z           "complete": true,
2026-06-15T09:40:48.8536789Z           "evidence": [
2026-06-15T09:40:48.8536874Z             {
2026-06-15T09:40:48.8536993Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T09:40:48.8537080Z               "line": 18
2026-06-15T09:40:48.8537166Z             }
2026-06-15T09:40:48.8537246Z           ]
2026-06-15T09:40:48.8537332Z         },
2026-06-15T09:40:48.8537556Z         "unit": {
2026-06-15T09:40:48.8537647Z           "complete": false,
2026-06-15T09:40:48.8537728Z           "evidence": []
2026-06-15T09:40:48.8537909Z         }
2026-06-15T09:40:48.8537996Z       }
2026-06-15T09:40:48.8538076Z     },
2026-06-15T09:40:48.8538157Z     {
2026-06-15T09:40:48.8538272Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T09:40:48.8538462Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T09:40:48.8538553Z       "requiredStages": [
2026-06-15T09:40:48.8538630Z         "impl",
2026-06-15T09:40:48.8538711Z         "unit"
2026-06-15T09:40:48.8538781Z       ],
2026-06-15T09:40:48.8538866Z       "stages": {
2026-06-15T09:40:48.8539033Z         "doc": {
2026-06-15T09:40:48.8539127Z           "complete": false,
2026-06-15T09:40:48.8539207Z           "evidence": []
2026-06-15T09:40:48.8539294Z         },
2026-06-15T09:40:48.8539375Z         "impl": {
2026-06-15T09:40:48.8539451Z           "complete": true,
2026-06-15T09:40:48.8539551Z           "evidence": [
2026-06-15T09:40:48.8539632Z             {
2026-06-15T09:40:48.8539761Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8539846Z               "line": 415
2026-06-15T09:40:48.8539933Z             },
2026-06-15T09:40:48.8540014Z             {
2026-06-15T09:40:48.8540127Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8540214Z               "line": 27
2026-06-15T09:40:48.8540290Z             }
2026-06-15T09:40:48.8540385Z           ]
2026-06-15T09:40:48.8540461Z         },
2026-06-15T09:40:48.8540543Z         "int": {
2026-06-15T09:40:48.8540638Z           "complete": false,
2026-06-15T09:40:48.8540719Z           "evidence": []
2026-06-15T09:40:48.8540790Z         },
2026-06-15T09:40:48.8540873Z         "unit": {
2026-06-15T09:40:48.8540967Z           "complete": true,
2026-06-15T09:40:48.8541048Z           "evidence": [
2026-06-15T09:40:48.8541139Z             {
2026-06-15T09:40:48.8541259Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8541343Z               "line": 940
2026-06-15T09:40:48.8541420Z             },
2026-06-15T09:40:48.8541507Z             {
2026-06-15T09:40:48.8541625Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8541700Z               "line": 181
2026-06-15T09:40:48.8541781Z             }
2026-06-15T09:40:48.8541857Z           ]
2026-06-15T09:40:48.8541940Z         }
2026-06-15T09:40:48.8542020Z       }
2026-06-15T09:40:48.8542096Z     },
2026-06-15T09:40:48.8542177Z     {
2026-06-15T09:40:48.8542278Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T09:40:48.8542439Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T09:40:48.8542536Z       "requiredStages": [
2026-06-15T09:40:48.8542612Z         "impl",
2026-06-15T09:40:48.8542696Z         "unit"
2026-06-15T09:40:48.8542778Z       ],
2026-06-15T09:40:48.8542859Z       "stages": {
2026-06-15T09:40:48.8542930Z         "doc": {
2026-06-15T09:40:48.8543020Z           "complete": false,
2026-06-15T09:40:48.8543117Z           "evidence": []
2026-06-15T09:40:48.8543194Z         },
2026-06-15T09:40:48.8543279Z         "impl": {
2026-06-15T09:40:48.8543359Z           "complete": true,
2026-06-15T09:40:48.8543446Z           "evidence": [
2026-06-15T09:40:48.8543527Z             {
2026-06-15T09:40:48.8543641Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8543732Z               "line": 73
2026-06-15T09:40:48.8543804Z             },
2026-06-15T09:40:48.8543884Z             {
2026-06-15T09:40:48.8543997Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8544078Z               "line": 941
2026-06-15T09:40:48.8544155Z             },
2026-06-15T09:40:48.8544234Z             {
2026-06-15T09:40:48.8544347Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8544420Z               "line": 20
2026-06-15T09:40:48.8544502Z             },
2026-06-15T09:40:48.8544586Z             {
2026-06-15T09:40:48.8544801Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8544882Z               "line": 100
2026-06-15T09:40:48.8545050Z             },
2026-06-15T09:40:48.8545125Z             {
2026-06-15T09:40:48.8545234Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T09:40:48.8545316Z               "line": 555
2026-06-15T09:40:48.8545393Z             },
2026-06-15T09:40:48.8545464Z             {
2026-06-15T09:40:48.8545578Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:40:48.8545669Z               "line": 68
2026-06-15T09:40:48.8545755Z             },
2026-06-15T09:40:48.8545836Z             {
2026-06-15T09:40:48.8545950Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:40:48.8546037Z               "line": 80
2026-06-15T09:40:48.8546121Z             }
2026-06-15T09:40:48.8546202Z           ]
2026-06-15T09:40:48.8546285Z         },
2026-06-15T09:40:48.8546371Z         "int": {
2026-06-15T09:40:48.8546450Z           "complete": true,
2026-06-15T09:40:48.8546546Z           "evidence": [
2026-06-15T09:40:48.8546619Z             {
2026-06-15T09:40:48.8546728Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T09:40:48.8546807Z               "line": 44
2026-06-15T09:40:48.8546892Z             }
2026-06-15T09:40:48.8546974Z           ]
2026-06-15T09:40:48.8547050Z         },
2026-06-15T09:40:48.8547129Z         "unit": {
2026-06-15T09:40:48.8547219Z           "complete": true,
2026-06-15T09:40:48.8547311Z           "evidence": [
2026-06-15T09:40:48.8547388Z             {
2026-06-15T09:40:48.8547511Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8547602Z               "line": 1141
2026-06-15T09:40:48.8547678Z             },
2026-06-15T09:40:48.8547758Z             {
2026-06-15T09:40:48.8547873Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.8547960Z               "line": 1157
2026-06-15T09:40:48.8548036Z             },
2026-06-15T09:40:48.8548125Z             {
2026-06-15T09:40:48.8548251Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8548335Z               "line": 1488
2026-06-15T09:40:48.8548416Z             },
2026-06-15T09:40:48.8548497Z             {
2026-06-15T09:40:48.8548613Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8548707Z               "line": 152
2026-06-15T09:40:48.8548779Z             },
2026-06-15T09:40:48.8548866Z             {
2026-06-15T09:40:48.8549041Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8549137Z               "line": 175
2026-06-15T09:40:48.8549215Z             },
2026-06-15T09:40:48.8549299Z             {
2026-06-15T09:40:48.8549412Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8549493Z               "line": 186
2026-06-15T09:40:48.8549574Z             },
2026-06-15T09:40:48.8549653Z             {
2026-06-15T09:40:48.8549762Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8549844Z               "line": 202
2026-06-15T09:40:48.8549926Z             },
2026-06-15T09:40:48.8550011Z             {
2026-06-15T09:40:48.8550121Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T09:40:48.8550207Z               "line": 216
2026-06-15T09:40:48.8550283Z             },
2026-06-15T09:40:48.8550368Z             {
2026-06-15T09:40:48.8550479Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T09:40:48.8550564Z               "line": 137
2026-06-15T09:40:48.8550645Z             },
2026-06-15T09:40:48.8550725Z             {
2026-06-15T09:40:48.8550818Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8550902Z               "line": 6587
2026-06-15T09:40:48.8550979Z             },
2026-06-15T09:40:48.8551060Z             {
2026-06-15T09:40:48.8551175Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T09:40:48.8551251Z               "line": 30
2026-06-15T09:40:48.8551332Z             },
2026-06-15T09:40:48.8551413Z             {
2026-06-15T09:40:48.8551618Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T09:40:48.8551699Z               "line": 73
2026-06-15T09:40:48.8551875Z             }
2026-06-15T09:40:48.8551952Z           ]
2026-06-15T09:40:48.8552034Z         }
2026-06-15T09:40:48.8552105Z       }
2026-06-15T09:40:48.8552185Z     },
2026-06-15T09:40:48.8552265Z     {
2026-06-15T09:40:48.8552365Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T09:40:48.8552603Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T09:40:48.8552704Z       "requiredStages": [
2026-06-15T09:40:48.8552819Z         "impl",
2026-06-15T09:40:48.8552918Z         "unit"
2026-06-15T09:40:48.8553004Z       ],
2026-06-15T09:40:48.8553086Z       "stages": {
2026-06-15T09:40:48.8553167Z         "doc": {
2026-06-15T09:40:48.8553261Z           "complete": true,
2026-06-15T09:40:48.8553348Z           "evidence": [
2026-06-15T09:40:48.8553424Z             {
2026-06-15T09:40:48.8553538Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8553629Z               "line": 133
2026-06-15T09:40:48.8553720Z             }
2026-06-15T09:40:48.8553801Z           ]
2026-06-15T09:40:48.8553882Z         },
2026-06-15T09:40:48.8553963Z         "impl": {
2026-06-15T09:40:48.8554059Z           "complete": true,
2026-06-15T09:40:48.8554139Z           "evidence": [
2026-06-15T09:40:48.8554220Z             {
2026-06-15T09:40:48.8554331Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.8554425Z               "line": 65
2026-06-15T09:40:48.8554505Z             },
2026-06-15T09:40:48.8554590Z             {
2026-06-15T09:40:48.8554701Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8554789Z               "line": 17
2026-06-15T09:40:48.8554870Z             },
2026-06-15T09:40:48.8554947Z             {
2026-06-15T09:40:48.8555067Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8555146Z               "line": 146
2026-06-15T09:40:48.8555242Z             },
2026-06-15T09:40:48.8555329Z             {
2026-06-15T09:40:48.8555433Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8555518Z               "line": 249
2026-06-15T09:40:48.8555600Z             },
2026-06-15T09:40:48.8555681Z             {
2026-06-15T09:40:48.8555785Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8555866Z               "line": 362
2026-06-15T09:40:48.8555953Z             },
2026-06-15T09:40:48.8556029Z             {
2026-06-15T09:40:48.8556142Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8556235Z               "line": 32
2026-06-15T09:40:48.8556320Z             },
2026-06-15T09:40:48.8556401Z             {
2026-06-15T09:40:48.8556510Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8556602Z               "line": 1171
2026-06-15T09:40:48.8556682Z             },
2026-06-15T09:40:48.8556767Z             {
2026-06-15T09:40:48.8556864Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8556955Z               "line": 5295
2026-06-15T09:40:48.8557029Z             },
2026-06-15T09:40:48.8557106Z             {
2026-06-15T09:40:48.8557208Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8557293Z               "line": 5577
2026-06-15T09:40:48.8557377Z             }
2026-06-15T09:40:48.8557457Z           ]
2026-06-15T09:40:48.8557549Z         },
2026-06-15T09:40:48.8557633Z         "int": {
2026-06-15T09:40:48.8557718Z           "complete": false,
2026-06-15T09:40:48.8557799Z           "evidence": []
2026-06-15T09:40:48.8557876Z         },
2026-06-15T09:40:48.8557958Z         "unit": {
2026-06-15T09:40:48.8558037Z           "complete": true,
2026-06-15T09:40:48.8558128Z           "evidence": [
2026-06-15T09:40:48.8558201Z             {
2026-06-15T09:40:48.8558300Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8558380Z               "line": 94
2026-06-15T09:40:48.8558458Z             },
2026-06-15T09:40:48.8558643Z             {
2026-06-15T09:40:48.8558753Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8558910Z               "line": 111
2026-06-15T09:40:48.8559087Z             },
2026-06-15T09:40:48.8559164Z             {
2026-06-15T09:40:48.8559267Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8559344Z               "line": 124
2026-06-15T09:40:48.8559421Z             },
2026-06-15T09:40:48.8559493Z             {
2026-06-15T09:40:48.8559606Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8559688Z               "line": 134
2026-06-15T09:40:48.8559770Z             },
2026-06-15T09:40:48.8559850Z             {
2026-06-15T09:40:48.8559949Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8560039Z               "line": 144
2026-06-15T09:40:48.8560116Z             },
2026-06-15T09:40:48.8560195Z             {
2026-06-15T09:40:48.8560304Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T09:40:48.8560375Z               "line": 156
2026-06-15T09:40:48.8560471Z             },
2026-06-15T09:40:48.8560547Z             {
2026-06-15T09:40:48.8560676Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8560753Z               "line": 746
2026-06-15T09:40:48.8560839Z             },
2026-06-15T09:40:48.8560919Z             {
2026-06-15T09:40:48.8561034Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8561124Z               "line": 309
2026-06-15T09:40:48.8561200Z             }
2026-06-15T09:40:48.8561276Z           ]
2026-06-15T09:40:48.8561359Z         }
2026-06-15T09:40:48.8561439Z       }
2026-06-15T09:40:48.8561515Z     },
2026-06-15T09:40:48.8561591Z     {
2026-06-15T09:40:48.8561693Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T09:40:48.8561816Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T09:40:48.8561906Z       "requiredStages": [
2026-06-15T09:40:48.8561988Z         "impl",
2026-06-15T09:40:48.8562073Z         "unit"
2026-06-15T09:40:48.8562159Z       ],
2026-06-15T09:40:48.8562235Z       "stages": {
2026-06-15T09:40:48.8562312Z         "doc": {
2026-06-15T09:40:48.8562407Z           "complete": false,
2026-06-15T09:40:48.8562502Z           "evidence": []
2026-06-15T09:40:48.8562584Z         },
2026-06-15T09:40:48.8562670Z         "impl": {
2026-06-15T09:40:48.8562759Z           "complete": true,
2026-06-15T09:40:48.8562844Z           "evidence": [
2026-06-15T09:40:48.8562916Z             {
2026-06-15T09:40:48.8563031Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.8563111Z               "line": 128
2026-06-15T09:40:48.8563192Z             }
2026-06-15T09:40:48.8563283Z           ]
2026-06-15T09:40:48.8563365Z         },
2026-06-15T09:40:48.8563445Z         "int": {
2026-06-15T09:40:48.8563540Z           "complete": false,
2026-06-15T09:40:48.8563618Z           "evidence": []
2026-06-15T09:40:48.8563698Z         },
2026-06-15T09:40:48.8563774Z         "unit": {
2026-06-15T09:40:48.8563875Z           "complete": true,
2026-06-15T09:40:48.8563965Z           "evidence": [
2026-06-15T09:40:48.8564046Z             {
2026-06-15T09:40:48.8564165Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.8564243Z               "line": 205
2026-06-15T09:40:48.8564323Z             }
2026-06-15T09:40:48.8564404Z           ]
2026-06-15T09:40:48.8564484Z         }
2026-06-15T09:40:48.8564572Z       }
2026-06-15T09:40:48.8564652Z     },
2026-06-15T09:40:48.8564727Z     {
2026-06-15T09:40:48.8564833Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T09:40:48.8564976Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T09:40:48.8565056Z       "requiredStages": [
2026-06-15T09:40:48.8565132Z         "impl",
2026-06-15T09:40:48.8565218Z         "unit"
2026-06-15T09:40:48.8565298Z       ],
2026-06-15T09:40:48.8565378Z       "stages": {
2026-06-15T09:40:48.8565454Z         "doc": {
2026-06-15T09:40:48.8565549Z           "complete": false,
2026-06-15T09:40:48.8565636Z           "evidence": []
2026-06-15T09:40:48.8565821Z         },
2026-06-15T09:40:48.8565898Z         "impl": {
2026-06-15T09:40:48.8566078Z           "complete": true,
2026-06-15T09:40:48.8566170Z           "evidence": [
2026-06-15T09:40:48.8566251Z             {
2026-06-15T09:40:48.8566364Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8566446Z               "line": 272
2026-06-15T09:40:48.8566537Z             },
2026-06-15T09:40:48.8566623Z             {
2026-06-15T09:40:48.8566727Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8566814Z               "line": 283
2026-06-15T09:40:48.8566894Z             },
2026-06-15T09:40:48.8566970Z             {
2026-06-15T09:40:48.8567075Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8567172Z               "line": 301
2026-06-15T09:40:48.8567251Z             }
2026-06-15T09:40:48.8567332Z           ]
2026-06-15T09:40:48.8567410Z         },
2026-06-15T09:40:48.8567491Z         "int": {
2026-06-15T09:40:48.8567594Z           "complete": false,
2026-06-15T09:40:48.8567681Z           "evidence": []
2026-06-15T09:40:48.8567768Z         },
2026-06-15T09:40:48.8567848Z         "unit": {
2026-06-15T09:40:48.8567928Z           "complete": true,
2026-06-15T09:40:48.8568009Z           "evidence": [
2026-06-15T09:40:48.8568090Z             {
2026-06-15T09:40:48.8568189Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8568264Z               "line": 325
2026-06-15T09:40:48.8568344Z             },
2026-06-15T09:40:48.8568421Z             {
2026-06-15T09:40:48.8568527Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8568616Z               "line": 346
2026-06-15T09:40:48.8568688Z             },
2026-06-15T09:40:48.8568775Z             {
2026-06-15T09:40:48.8568875Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8569047Z               "line": 574
2026-06-15T09:40:48.8569136Z             },
2026-06-15T09:40:48.8569213Z             {
2026-06-15T09:40:48.8569332Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8569414Z               "line": 585
2026-06-15T09:40:48.8569499Z             },
2026-06-15T09:40:48.8569580Z             {
2026-06-15T09:40:48.8569691Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8569771Z               "line": 598
2026-06-15T09:40:48.8569852Z             }
2026-06-15T09:40:48.8569933Z           ]
2026-06-15T09:40:48.8570010Z         }
2026-06-15T09:40:48.8570091Z       }
2026-06-15T09:40:48.8570171Z     },
2026-06-15T09:40:48.8570253Z     {
2026-06-15T09:40:48.8570359Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T09:40:48.8570959Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T09:40:48.8571056Z       "requiredStages": [
2026-06-15T09:40:48.8571140Z         "impl",
2026-06-15T09:40:48.8571221Z         "unit"
2026-06-15T09:40:48.8571304Z       ],
2026-06-15T09:40:48.8571384Z       "stages": {
2026-06-15T09:40:48.8571469Z         "doc": {
2026-06-15T09:40:48.8571565Z           "complete": false,
2026-06-15T09:40:48.8571647Z           "evidence": []
2026-06-15T09:40:48.8571728Z         },
2026-06-15T09:40:48.8571808Z         "impl": {
2026-06-15T09:40:48.8571895Z           "complete": true,
2026-06-15T09:40:48.8571976Z           "evidence": [
2026-06-15T09:40:48.8572061Z             {
2026-06-15T09:40:48.8572170Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8572258Z               "line": 759
2026-06-15T09:40:48.8572337Z             }
2026-06-15T09:40:48.8572414Z           ]
2026-06-15T09:40:48.8572495Z         },
2026-06-15T09:40:48.8572577Z         "int": {
2026-06-15T09:40:48.8572666Z           "complete": false,
2026-06-15T09:40:48.8572752Z           "evidence": []
2026-06-15T09:40:48.8572834Z         },
2026-06-15T09:40:48.8573019Z         "unit": {
2026-06-15T09:40:48.8573110Z           "complete": true,
2026-06-15T09:40:48.8573192Z           "evidence": [
2026-06-15T09:40:48.8573357Z             {
2026-06-15T09:40:48.8573471Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8573558Z               "line": 873
2026-06-15T09:40:48.8573639Z             }
2026-06-15T09:40:48.8573719Z           ]
2026-06-15T09:40:48.8573795Z         }
2026-06-15T09:40:48.8573877Z       }
2026-06-15T09:40:48.8573954Z     },
2026-06-15T09:40:48.8574034Z     {
2026-06-15T09:40:48.8574139Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T09:40:48.8574343Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T09:40:48.8574440Z       "requiredStages": [
2026-06-15T09:40:48.8574516Z         "impl",
2026-06-15T09:40:48.8574606Z         "unit"
2026-06-15T09:40:48.8574682Z       ],
2026-06-15T09:40:48.8574773Z       "stages": {
2026-06-15T09:40:48.8574854Z         "doc": {
2026-06-15T09:40:48.8574949Z           "complete": false,
2026-06-15T09:40:48.8575035Z           "evidence": []
2026-06-15T09:40:48.8575118Z         },
2026-06-15T09:40:48.8575207Z         "impl": {
2026-06-15T09:40:48.8575288Z           "complete": true,
2026-06-15T09:40:48.8575369Z           "evidence": [
2026-06-15T09:40:48.8575447Z             {
2026-06-15T09:40:48.8575550Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8575630Z               "line": 14
2026-06-15T09:40:48.8575711Z             },
2026-06-15T09:40:48.8575797Z             {
2026-06-15T09:40:48.8575895Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.8575976Z               "line": 449
2026-06-15T09:40:48.8576052Z             }
2026-06-15T09:40:48.8576134Z           ]
2026-06-15T09:40:48.8576201Z         },
2026-06-15T09:40:48.8576290Z         "int": {
2026-06-15T09:40:48.8576381Z           "complete": false,
2026-06-15T09:40:48.8576468Z           "evidence": []
2026-06-15T09:40:48.8576553Z         },
2026-06-15T09:40:48.8576643Z         "unit": {
2026-06-15T09:40:48.8576735Z           "complete": true,
2026-06-15T09:40:48.8576825Z           "evidence": [
2026-06-15T09:40:48.8576910Z             {
2026-06-15T09:40:48.8577021Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8577102Z               "line": 130
2026-06-15T09:40:48.8577183Z             },
2026-06-15T09:40:48.8577263Z             {
2026-06-15T09:40:48.8577360Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8577440Z               "line": 138
2026-06-15T09:40:48.8577521Z             },
2026-06-15T09:40:48.8577601Z             {
2026-06-15T09:40:48.8577703Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8577783Z               "line": 146
2026-06-15T09:40:48.8577869Z             },
2026-06-15T09:40:48.8577946Z             {
2026-06-15T09:40:48.8578046Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8578141Z               "line": 154
2026-06-15T09:40:48.8578222Z             },
2026-06-15T09:40:48.8578299Z             {
2026-06-15T09:40:48.8578413Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8578502Z               "line": 162
2026-06-15T09:40:48.8578578Z             },
2026-06-15T09:40:48.8578655Z             {
2026-06-15T09:40:48.8578767Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T09:40:48.8578852Z               "line": 170
2026-06-15T09:40:48.8578924Z             }
2026-06-15T09:40:48.8579096Z           ]
2026-06-15T09:40:48.8579171Z         }
2026-06-15T09:40:48.8579253Z       }
2026-06-15T09:40:48.8579330Z     },
2026-06-15T09:40:48.8579407Z     {
2026-06-15T09:40:48.8579520Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T09:40:48.8580474Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T09:40:48.8580688Z       "requiredStages": [
2026-06-15T09:40:48.8580769Z         "impl",
2026-06-15T09:40:48.8580980Z         "unit"
2026-06-15T09:40:48.8581064Z       ],
2026-06-15T09:40:48.8581144Z       "stages": {
2026-06-15T09:40:48.8581231Z         "doc": {
2026-06-15T09:40:48.8581320Z           "complete": false,
2026-06-15T09:40:48.8581419Z           "evidence": []
2026-06-15T09:40:48.8581496Z         },
2026-06-15T09:40:48.8581573Z         "impl": {
2026-06-15T09:40:48.8581654Z           "complete": true,
2026-06-15T09:40:48.8581729Z           "evidence": [
2026-06-15T09:40:48.8581810Z             {
2026-06-15T09:40:48.8581954Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8582043Z               "line": 34
2026-06-15T09:40:48.8582120Z             }
2026-06-15T09:40:48.8582202Z           ]
2026-06-15T09:40:48.8582278Z         },
2026-06-15T09:40:48.8582353Z         "int": {
2026-06-15T09:40:48.8582450Z           "complete": false,
2026-06-15T09:40:48.8582545Z           "evidence": []
2026-06-15T09:40:48.8582631Z         },
2026-06-15T09:40:48.8582716Z         "unit": {
2026-06-15T09:40:48.8582798Z           "complete": true,
2026-06-15T09:40:48.8582888Z           "evidence": [
2026-06-15T09:40:48.8582955Z             {
2026-06-15T09:40:48.8583099Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8583180Z               "line": 188
2026-06-15T09:40:48.8583259Z             },
2026-06-15T09:40:48.8583336Z             {
2026-06-15T09:40:48.8583476Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8583555Z               "line": 200
2026-06-15T09:40:48.8583632Z             },
2026-06-15T09:40:48.8583709Z             {
2026-06-15T09:40:48.8583829Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8583912Z               "line": 211
2026-06-15T09:40:48.8583984Z             },
2026-06-15T09:40:48.8584065Z             {
2026-06-15T09:40:48.8584208Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8584293Z               "line": 253
2026-06-15T09:40:48.8584384Z             },
2026-06-15T09:40:48.8584461Z             {
2026-06-15T09:40:48.8584589Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8584680Z               "line": 277
2026-06-15T09:40:48.8584757Z             },
2026-06-15T09:40:48.8584848Z             {
2026-06-15T09:40:48.8584970Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8585053Z               "line": 300
2026-06-15T09:40:48.8585133Z             },
2026-06-15T09:40:48.8585218Z             {
2026-06-15T09:40:48.8585343Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T09:40:48.8585424Z               "line": 316
2026-06-15T09:40:48.8585510Z             }
2026-06-15T09:40:48.8585581Z           ]
2026-06-15T09:40:48.8585663Z         }
2026-06-15T09:40:48.8585744Z       }
2026-06-15T09:40:48.8585829Z     },
2026-06-15T09:40:48.8585915Z     {
2026-06-15T09:40:48.8586026Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T09:40:48.8586554Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T09:40:48.8586656Z       "requiredStages": [
2026-06-15T09:40:48.8586742Z         "impl",
2026-06-15T09:40:48.8586827Z         "unit"
2026-06-15T09:40:48.8586913Z       ],
2026-06-15T09:40:48.8587004Z       "stages": {
2026-06-15T09:40:48.8587085Z         "doc": {
2026-06-15T09:40:48.8587184Z           "complete": false,
2026-06-15T09:40:48.8587271Z           "evidence": []
2026-06-15T09:40:48.8587361Z         },
2026-06-15T09:40:48.8587442Z         "impl": {
2026-06-15T09:40:48.8587532Z           "complete": true,
2026-06-15T09:40:48.8587634Z           "evidence": [
2026-06-15T09:40:48.8587710Z             {
2026-06-15T09:40:48.8587949Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8588119Z               "line": 29
2026-06-15T09:40:48.8588196Z             },
2026-06-15T09:40:48.8588277Z             {
2026-06-15T09:40:48.8588396Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8588486Z               "line": 174
2026-06-15T09:40:48.8588569Z             },
2026-06-15T09:40:48.8588649Z             {
2026-06-15T09:40:48.8588744Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8588836Z               "line": 194
2026-06-15T09:40:48.8588917Z             },
2026-06-15T09:40:48.8589076Z             {
2026-06-15T09:40:48.8589196Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8589281Z               "line": 222
2026-06-15T09:40:48.8589361Z             }
2026-06-15T09:40:48.8589436Z           ]
2026-06-15T09:40:48.8589513Z         },
2026-06-15T09:40:48.8589595Z         "int": {
2026-06-15T09:40:48.8589699Z           "complete": false,
2026-06-15T09:40:48.8589780Z           "evidence": []
2026-06-15T09:40:48.8589862Z         },
2026-06-15T09:40:48.8589957Z         "unit": {
2026-06-15T09:40:48.8590037Z           "complete": true,
2026-06-15T09:40:48.8590123Z           "evidence": [
2026-06-15T09:40:48.8590205Z             {
2026-06-15T09:40:48.8590314Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8590404Z               "line": 329
2026-06-15T09:40:48.8590477Z             },
2026-06-15T09:40:48.8590562Z             {
2026-06-15T09:40:48.8590672Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8590767Z               "line": 344
2026-06-15T09:40:48.8590849Z             },
2026-06-15T09:40:48.8590929Z             {
2026-06-15T09:40:48.8591048Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8591126Z               "line": 417
2026-06-15T09:40:48.8591202Z             },
2026-06-15T09:40:48.8591281Z             {
2026-06-15T09:40:48.8591402Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8591493Z               "line": 433
2026-06-15T09:40:48.8591577Z             },
2026-06-15T09:40:48.8591662Z             {
2026-06-15T09:40:48.8591768Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8591862Z               "line": 492
2026-06-15T09:40:48.8591941Z             },
2026-06-15T09:40:48.8592017Z             {
2026-06-15T09:40:48.8592128Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8592209Z               "line": 506
2026-06-15T09:40:48.8592294Z             },
2026-06-15T09:40:48.8592370Z             {
2026-06-15T09:40:48.8592485Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8592566Z               "line": 517
2026-06-15T09:40:48.8592652Z             },
2026-06-15T09:40:48.8592734Z             {
2026-06-15T09:40:48.8592833Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8592928Z               "line": 528
2026-06-15T09:40:48.8593010Z             }
2026-06-15T09:40:48.8593091Z           ]
2026-06-15T09:40:48.8593176Z         }
2026-06-15T09:40:48.8593262Z       }
2026-06-15T09:40:48.8593344Z     },
2026-06-15T09:40:48.8593430Z     {
2026-06-15T09:40:48.8593553Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T09:40:48.8594197Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T09:40:48.8594298Z       "requiredStages": [
2026-06-15T09:40:48.8594379Z         "impl",
2026-06-15T09:40:48.8594454Z         "unit"
2026-06-15T09:40:48.8594530Z       ],
2026-06-15T09:40:48.8594611Z       "stages": {
2026-06-15T09:40:48.8594693Z         "doc": {
2026-06-15T09:40:48.8594769Z           "complete": false,
2026-06-15T09:40:48.8594868Z           "evidence": []
2026-06-15T09:40:48.8594940Z         },
2026-06-15T09:40:48.8595026Z         "impl": {
2026-06-15T09:40:48.8595230Z           "complete": true,
2026-06-15T09:40:48.8595313Z           "evidence": [
2026-06-15T09:40:48.8598894Z             {
2026-06-15T09:40:48.8599134Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8599227Z               "line": 27
2026-06-15T09:40:48.8599309Z             },
2026-06-15T09:40:48.8599391Z             {
2026-06-15T09:40:48.8599538Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8599628Z               "line": 110
2026-06-15T09:40:48.8599708Z             },
2026-06-15T09:40:48.8599785Z             {
2026-06-15T09:40:48.8599906Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8600006Z               "line": 153
2026-06-15T09:40:48.8600088Z             },
2026-06-15T09:40:48.8600174Z             {
2026-06-15T09:40:48.8600297Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8600373Z               "line": 182
2026-06-15T09:40:48.8600470Z             },
2026-06-15T09:40:48.8600545Z             {
2026-06-15T09:40:48.8600688Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8600775Z               "line": 31
2026-06-15T09:40:48.8600860Z             },
2026-06-15T09:40:48.8600931Z             {
2026-06-15T09:40:48.8601089Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8601170Z               "line": 113
2026-06-15T09:40:48.8601251Z             },
2026-06-15T09:40:48.8601328Z             {
2026-06-15T09:40:48.8601447Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8601532Z               "line": 138
2026-06-15T09:40:48.8601613Z             }
2026-06-15T09:40:48.8601696Z           ]
2026-06-15T09:40:48.8601776Z         },
2026-06-15T09:40:48.8601861Z         "int": {
2026-06-15T09:40:48.8601953Z           "complete": false,
2026-06-15T09:40:48.8602029Z           "evidence": []
2026-06-15T09:40:48.8602123Z         },
2026-06-15T09:40:48.8602203Z         "unit": {
2026-06-15T09:40:48.8602284Z           "complete": true,
2026-06-15T09:40:48.8602370Z           "evidence": [
2026-06-15T09:40:48.8602454Z             {
2026-06-15T09:40:48.8602582Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8602669Z               "line": 261
2026-06-15T09:40:48.8602751Z             },
2026-06-15T09:40:48.8602826Z             {
2026-06-15T09:40:48.8602945Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8603027Z               "line": 276
2026-06-15T09:40:48.8603117Z             },
2026-06-15T09:40:48.8603202Z             {
2026-06-15T09:40:48.8603322Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8603408Z               "line": 293
2026-06-15T09:40:48.8603488Z             },
2026-06-15T09:40:48.8603570Z             {
2026-06-15T09:40:48.8603689Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8603794Z               "line": 310
2026-06-15T09:40:48.8603875Z             },
2026-06-15T09:40:48.8603962Z             {
2026-06-15T09:40:48.8604085Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8604161Z               "line": 327
2026-06-15T09:40:48.8604243Z             },
2026-06-15T09:40:48.8604323Z             {
2026-06-15T09:40:48.8604452Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.8604544Z               "line": 366
2026-06-15T09:40:48.8604624Z             },
2026-06-15T09:40:48.8604704Z             {
2026-06-15T09:40:48.8604829Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8604920Z               "line": 179
2026-06-15T09:40:48.8605005Z             },
2026-06-15T09:40:48.8605075Z             {
2026-06-15T09:40:48.8605214Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8605291Z               "line": 194
2026-06-15T09:40:48.8605505Z             },
2026-06-15T09:40:48.8605587Z             {
2026-06-15T09:40:48.8605752Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8605948Z               "line": 204
2026-06-15T09:40:48.8606029Z             },
2026-06-15T09:40:48.8606115Z             {
2026-06-15T09:40:48.8606249Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8606339Z               "line": 259
2026-06-15T09:40:48.8606420Z             },
2026-06-15T09:40:48.8606512Z             {
2026-06-15T09:40:48.8606645Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8606730Z               "line": 269
2026-06-15T09:40:48.8606812Z             },
2026-06-15T09:40:48.8606888Z             {
2026-06-15T09:40:48.8607020Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.8607113Z               "line": 283
2026-06-15T09:40:48.8607198Z             }
2026-06-15T09:40:48.8607278Z           ]
2026-06-15T09:40:48.8607363Z         }
2026-06-15T09:40:48.8607444Z       }
2026-06-15T09:40:48.8607520Z     },
2026-06-15T09:40:48.8607604Z     {
2026-06-15T09:40:48.8607713Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T09:40:48.8607900Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T09:40:48.8608000Z       "requiredStages": [],
2026-06-15T09:40:48.8608081Z       "stages": {
2026-06-15T09:40:48.8608158Z         "doc": {
2026-06-15T09:40:48.8608248Z           "complete": false,
2026-06-15T09:40:48.8608333Z           "evidence": []
2026-06-15T09:40:48.8608416Z         },
2026-06-15T09:40:48.8608501Z         "impl": {
2026-06-15T09:40:48.8608595Z           "complete": false,
2026-06-15T09:40:48.8608672Z           "evidence": []
2026-06-15T09:40:48.8608754Z         },
2026-06-15T09:40:48.8608834Z         "int": {
2026-06-15T09:40:48.8608929Z           "complete": false,
2026-06-15T09:40:48.8609102Z           "evidence": []
2026-06-15T09:40:48.8609192Z         },
2026-06-15T09:40:48.8609282Z         "unit": {
2026-06-15T09:40:48.8609369Z           "complete": false,
2026-06-15T09:40:48.8609454Z           "evidence": []
2026-06-15T09:40:48.8609521Z         }
2026-06-15T09:40:48.8609607Z       }
2026-06-15T09:40:48.8609689Z     },
2026-06-15T09:40:48.8609769Z     {
2026-06-15T09:40:48.8609902Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T09:40:48.8610739Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T09:40:48.8610838Z       "requiredStages": [
2026-06-15T09:40:48.8610919Z         "impl",
2026-06-15T09:40:48.8611006Z         "unit"
2026-06-15T09:40:48.8611087Z       ],
2026-06-15T09:40:48.8611172Z       "stages": {
2026-06-15T09:40:48.8611249Z         "doc": {
2026-06-15T09:40:48.8611330Z           "complete": false,
2026-06-15T09:40:48.8611430Z           "evidence": []
2026-06-15T09:40:48.8611501Z         },
2026-06-15T09:40:48.8611592Z         "impl": {
2026-06-15T09:40:48.8611682Z           "complete": true,
2026-06-15T09:40:48.8611754Z           "evidence": [
2026-06-15T09:40:48.8611835Z             {
2026-06-15T09:40:48.8611951Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8612035Z               "line": 26
2026-06-15T09:40:48.8612111Z             },
2026-06-15T09:40:48.8612198Z             {
2026-06-15T09:40:48.8612317Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8612388Z               "line": 95
2026-06-15T09:40:48.8612469Z             },
2026-06-15T09:40:48.8612542Z             {
2026-06-15T09:40:48.8612660Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8612740Z               "line": 166
2026-06-15T09:40:48.8612820Z             },
2026-06-15T09:40:48.8612902Z             {
2026-06-15T09:40:48.8613019Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8613215Z               "line": 19
2026-06-15T09:40:48.8613405Z             },
2026-06-15T09:40:48.8613481Z             {
2026-06-15T09:40:48.8613601Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8613682Z               "line": 50
2026-06-15T09:40:48.8613767Z             },
2026-06-15T09:40:48.8613845Z             {
2026-06-15T09:40:48.8613954Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:40:48.8614039Z               "line": 18
2026-06-15T09:40:48.8614121Z             },
2026-06-15T09:40:48.8614197Z             {
2026-06-15T09:40:48.8614301Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:40:48.8614382Z               "line": 71
2026-06-15T09:40:48.8614464Z             },
2026-06-15T09:40:48.8614545Z             {
2026-06-15T09:40:48.8614645Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.8614730Z               "line": 79
2026-06-15T09:40:48.8614808Z             }
2026-06-15T09:40:48.8614888Z           ]
2026-06-15T09:40:48.8614969Z         },
2026-06-15T09:40:48.8615050Z         "int": {
2026-06-15T09:40:48.8615147Z           "complete": false,
2026-06-15T09:40:48.8615222Z           "evidence": []
2026-06-15T09:40:48.8615303Z         },
2026-06-15T09:40:48.8615390Z         "unit": {
2026-06-15T09:40:48.8615475Z           "complete": true,
2026-06-15T09:40:48.8615565Z           "evidence": [
2026-06-15T09:40:48.8615645Z             {
2026-06-15T09:40:48.8615770Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8615846Z               "line": 289
2026-06-15T09:40:48.8615927Z             },
2026-06-15T09:40:48.8616007Z             {
2026-06-15T09:40:48.8616108Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8616199Z               "line": 314
2026-06-15T09:40:48.8616279Z             },
2026-06-15T09:40:48.8616360Z             {
2026-06-15T09:40:48.8616475Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8616570Z               "line": 350
2026-06-15T09:40:48.8616651Z             },
2026-06-15T09:40:48.8616738Z             {
2026-06-15T09:40:48.8616851Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8616937Z               "line": 418
2026-06-15T09:40:48.8617019Z             },
2026-06-15T09:40:48.8617100Z             {
2026-06-15T09:40:48.8617205Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8617295Z               "line": 429
2026-06-15T09:40:48.8617368Z             },
2026-06-15T09:40:48.8617448Z             {
2026-06-15T09:40:48.8617553Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8617648Z               "line": 460
2026-06-15T09:40:48.8617725Z             },
2026-06-15T09:40:48.8617805Z             {
2026-06-15T09:40:48.8617923Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.8618009Z               "line": 471
2026-06-15T09:40:48.8618094Z             },
2026-06-15T09:40:48.8618174Z             {
2026-06-15T09:40:48.8618288Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8618375Z               "line": 77
2026-06-15T09:40:48.8618465Z             },
2026-06-15T09:40:48.8618545Z             {
2026-06-15T09:40:48.8618646Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8618736Z               "line": 97
2026-06-15T09:40:48.8618808Z             },
2026-06-15T09:40:48.8618884Z             {
2026-06-15T09:40:48.8619070Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8619155Z               "line": 112
2026-06-15T09:40:48.8619232Z             },
2026-06-15T09:40:48.8619309Z             {
2026-06-15T09:40:48.8619424Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8619503Z               "line": 123
2026-06-15T09:40:48.8619581Z             },
2026-06-15T09:40:48.8619658Z             {
2026-06-15T09:40:48.8619757Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8619944Z               "line": 130
2026-06-15T09:40:48.8620024Z             },
2026-06-15T09:40:48.8620191Z             {
2026-06-15T09:40:48.8620297Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T09:40:48.8620376Z               "line": 145
2026-06-15T09:40:48.8620458Z             },
2026-06-15T09:40:48.8620535Z             {
2026-06-15T09:40:48.8620640Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:40:48.8620719Z               "line": 115
2026-06-15T09:40:48.8620795Z             },
2026-06-15T09:40:48.8620872Z             {
2026-06-15T09:40:48.8620985Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:40:48.8621074Z               "line": 130
2026-06-15T09:40:48.8621150Z             },
2026-06-15T09:40:48.8621232Z             {
2026-06-15T09:40:48.8621337Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.8621427Z               "line": 420
2026-06-15T09:40:48.8621508Z             }
2026-06-15T09:40:48.8621594Z           ]
2026-06-15T09:40:48.8621675Z         }
2026-06-15T09:40:48.8621756Z       }
2026-06-15T09:40:48.8621838Z     },
2026-06-15T09:40:48.8621914Z     {
2026-06-15T09:40:48.8622018Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T09:40:48.8622840Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T09:40:48.8622933Z       "requiredStages": [
2026-06-15T09:40:48.8623015Z         "doc",
2026-06-15T09:40:48.8623092Z         "impl",
2026-06-15T09:40:48.8623174Z         "unit"
2026-06-15T09:40:48.8623253Z       ],
2026-06-15T09:40:48.8623338Z       "stages": {
2026-06-15T09:40:48.8623414Z         "doc": {
2026-06-15T09:40:48.8623500Z           "complete": true,
2026-06-15T09:40:48.8623584Z           "evidence": [
2026-06-15T09:40:48.8623674Z             {
2026-06-15T09:40:48.8623784Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8623866Z               "line": 367
2026-06-15T09:40:48.8623946Z             }
2026-06-15T09:40:48.8624032Z           ]
2026-06-15T09:40:48.8624100Z         },
2026-06-15T09:40:48.8624180Z         "impl": {
2026-06-15T09:40:48.8624270Z           "complete": true,
2026-06-15T09:40:48.8624361Z           "evidence": [
2026-06-15T09:40:48.8624443Z             {
2026-06-15T09:40:48.8624561Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8624642Z               "line": 199
2026-06-15T09:40:48.8624724Z             },
2026-06-15T09:40:48.8624809Z             {
2026-06-15T09:40:48.8624928Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8625005Z               "line": 303
2026-06-15T09:40:48.8625086Z             },
2026-06-15T09:40:48.8625162Z             {
2026-06-15T09:40:48.8625276Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8625364Z               "line": 515
2026-06-15T09:40:48.8625448Z             },
2026-06-15T09:40:48.8625520Z             {
2026-06-15T09:40:48.8625625Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8625712Z               "line": 530
2026-06-15T09:40:48.8625796Z             },
2026-06-15T09:40:48.8625873Z             {
2026-06-15T09:40:48.8625974Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8626064Z               "line": 1127
2026-06-15T09:40:48.8626143Z             },
2026-06-15T09:40:48.8626224Z             {
2026-06-15T09:40:48.8626339Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8626421Z               "line": 443
2026-06-15T09:40:48.8626506Z             },
2026-06-15T09:40:48.8626587Z             {
2026-06-15T09:40:48.8626692Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8626778Z               "line": 590
2026-06-15T09:40:48.8626858Z             },
2026-06-15T09:40:48.8627017Z             {
2026-06-15T09:40:48.8627135Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8627303Z               "line": 731
2026-06-15T09:40:48.8627393Z             }
2026-06-15T09:40:48.8627483Z           ]
2026-06-15T09:40:48.8627560Z         },
2026-06-15T09:40:48.8627641Z         "int": {
2026-06-15T09:40:48.8627722Z           "complete": false,
2026-06-15T09:40:48.8627803Z           "evidence": []
2026-06-15T09:40:48.8627884Z         },
2026-06-15T09:40:48.8627961Z         "unit": {
2026-06-15T09:40:48.8628055Z           "complete": true,
2026-06-15T09:40:48.8628137Z           "evidence": [
2026-06-15T09:40:48.8628213Z             {
2026-06-15T09:40:48.8628318Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8628408Z               "line": 1155
2026-06-15T09:40:48.8628488Z             },
2026-06-15T09:40:48.8628570Z             {
2026-06-15T09:40:48.8628701Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T09:40:48.8628786Z               "line": 30
2026-06-15T09:40:48.8628872Z             }
2026-06-15T09:40:48.8629025Z           ]
2026-06-15T09:40:48.8629105Z         }
2026-06-15T09:40:48.8629182Z       }
2026-06-15T09:40:48.8629259Z     },
2026-06-15T09:40:48.8629344Z     {
2026-06-15T09:40:48.8629458Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T09:40:48.8629711Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T09:40:48.8629807Z       "requiredStages": [
2026-06-15T09:40:48.8629893Z         "impl",
2026-06-15T09:40:48.8629969Z         "unit"
2026-06-15T09:40:48.8630045Z       ],
2026-06-15T09:40:48.8630126Z       "stages": {
2026-06-15T09:40:48.8630198Z         "doc": {
2026-06-15T09:40:48.8630293Z           "complete": true,
2026-06-15T09:40:48.8630378Z           "evidence": [
2026-06-15T09:40:48.8630456Z             {
2026-06-15T09:40:48.8630561Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8630641Z               "line": 139
2026-06-15T09:40:48.8630737Z             }
2026-06-15T09:40:48.8630819Z           ]
2026-06-15T09:40:48.8630908Z         },
2026-06-15T09:40:48.8630990Z         "impl": {
2026-06-15T09:40:48.8631081Z           "complete": true,
2026-06-15T09:40:48.8631167Z           "evidence": [
2026-06-15T09:40:48.8631247Z             {
2026-06-15T09:40:48.8631360Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T09:40:48.8631441Z               "line": 29
2026-06-15T09:40:48.8631522Z             },
2026-06-15T09:40:48.8631601Z             {
2026-06-15T09:40:48.8631730Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.8631821Z               "line": 101
2026-06-15T09:40:48.8631902Z             },
2026-06-15T09:40:48.8631977Z             {
2026-06-15T09:40:48.8632093Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8632173Z               "line": 30
2026-06-15T09:40:48.8632254Z             },
2026-06-15T09:40:48.8632335Z             {
2026-06-15T09:40:48.8632456Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8632537Z               "line": 48
2026-06-15T09:40:48.8632616Z             }
2026-06-15T09:40:48.8632693Z           ]
2026-06-15T09:40:48.8632775Z         },
2026-06-15T09:40:48.8632850Z         "int": {
2026-06-15T09:40:48.8632950Z           "complete": false,
2026-06-15T09:40:48.8633042Z           "evidence": []
2026-06-15T09:40:48.8633123Z         },
2026-06-15T09:40:48.8633203Z         "unit": {
2026-06-15T09:40:48.8633280Z           "complete": true,
2026-06-15T09:40:48.8633371Z           "evidence": [
2026-06-15T09:40:48.8633452Z             {
2026-06-15T09:40:48.8633570Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8633662Z               "line": 162
2026-06-15T09:40:48.8633743Z             }
2026-06-15T09:40:48.8633817Z           ]
2026-06-15T09:40:48.8633899Z         }
2026-06-15T09:40:48.8633989Z       }
2026-06-15T09:40:48.8634070Z     },
2026-06-15T09:40:48.8634253Z     {
2026-06-15T09:40:48.8634369Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T09:40:48.8634740Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T09:40:48.8634921Z       "requiredStages": [
2026-06-15T09:40:48.8635003Z         "doc",
2026-06-15T09:40:48.8635084Z         "impl",
2026-06-15T09:40:48.8635169Z         "unit"
2026-06-15T09:40:48.8635246Z       ],
2026-06-15T09:40:48.8635337Z       "stages": {
2026-06-15T09:40:48.8635412Z         "doc": {
2026-06-15T09:40:48.8635508Z           "complete": true,
2026-06-15T09:40:48.8635594Z           "evidence": [
2026-06-15T09:40:48.8635684Z             {
2026-06-15T09:40:48.8635789Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8635875Z               "line": 151
2026-06-15T09:40:48.8635957Z             }
2026-06-15T09:40:48.8636032Z           ]
2026-06-15T09:40:48.8636113Z         },
2026-06-15T09:40:48.8636195Z         "impl": {
2026-06-15T09:40:48.8636295Z           "complete": true,
2026-06-15T09:40:48.8636389Z           "evidence": [
2026-06-15T09:40:48.8636466Z             {
2026-06-15T09:40:48.8636577Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8636661Z               "line": 22
2026-06-15T09:40:48.8636747Z             }
2026-06-15T09:40:48.8636827Z           ]
2026-06-15T09:40:48.8636918Z         },
2026-06-15T09:40:48.8637004Z         "int": {
2026-06-15T09:40:48.8637094Z           "complete": false,
2026-06-15T09:40:48.8637185Z           "evidence": []
2026-06-15T09:40:48.8637257Z         },
2026-06-15T09:40:48.8637347Z         "unit": {
2026-06-15T09:40:48.8637428Z           "complete": true,
2026-06-15T09:40:48.8637515Z           "evidence": [
2026-06-15T09:40:48.8637591Z             {
2026-06-15T09:40:48.8637704Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8637801Z               "line": 298
2026-06-15T09:40:48.8637877Z             }
2026-06-15T09:40:48.8637972Z           ]
2026-06-15T09:40:48.8638048Z         }
2026-06-15T09:40:48.8638125Z       }
2026-06-15T09:40:48.8638206Z     },
2026-06-15T09:40:48.8638291Z     {
2026-06-15T09:40:48.8638410Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T09:40:48.8638841Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T09:40:48.8639020Z       "requiredStages": [
2026-06-15T09:40:48.8639101Z         "impl",
2026-06-15T09:40:48.8639177Z         "unit"
2026-06-15T09:40:48.8639266Z       ],
2026-06-15T09:40:48.8639341Z       "stages": {
2026-06-15T09:40:48.8639428Z         "doc": {
2026-06-15T09:40:48.8639528Z           "complete": true,
2026-06-15T09:40:48.8639619Z           "evidence": [
2026-06-15T09:40:48.8639704Z             {
2026-06-15T09:40:48.8639800Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8639886Z               "line": 145
2026-06-15T09:40:48.8639966Z             }
2026-06-15T09:40:48.8640062Z           ]
2026-06-15T09:40:48.8640134Z         },
2026-06-15T09:40:48.8640219Z         "impl": {
2026-06-15T09:40:48.8640314Z           "complete": true,
2026-06-15T09:40:48.8640392Z           "evidence": [
2026-06-15T09:40:48.8640472Z             {
2026-06-15T09:40:48.8640591Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:40:48.8640677Z               "line": 160
2026-06-15T09:40:48.8640754Z             },
2026-06-15T09:40:48.8640834Z             {
2026-06-15T09:40:48.8640958Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8641036Z               "line": 200
2026-06-15T09:40:48.8641116Z             },
2026-06-15T09:40:48.8641196Z             {
2026-06-15T09:40:48.8641321Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8641402Z               "line": 298
2026-06-15T09:40:48.8641492Z             },
2026-06-15T09:40:48.8641573Z             {
2026-06-15T09:40:48.8641694Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:40:48.8641901Z               "line": 20
2026-06-15T09:40:48.8641977Z             }
2026-06-15T09:40:48.8642157Z           ]
2026-06-15T09:40:48.8642237Z         },
2026-06-15T09:40:48.8642314Z         "int": {
2026-06-15T09:40:48.8642405Z           "complete": false,
2026-06-15T09:40:48.8642486Z           "evidence": []
2026-06-15T09:40:48.8642571Z         },
2026-06-15T09:40:48.8642653Z         "unit": {
2026-06-15T09:40:48.8642743Z           "complete": true,
2026-06-15T09:40:48.8642824Z           "evidence": [
2026-06-15T09:40:48.8642905Z             {
2026-06-15T09:40:48.8643020Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8643101Z               "line": 885
2026-06-15T09:40:48.8643186Z             },
2026-06-15T09:40:48.8643263Z             {
2026-06-15T09:40:48.8643391Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T09:40:48.8643477Z               "line": 88
2026-06-15T09:40:48.8643563Z             },
2026-06-15T09:40:48.8643650Z             {
2026-06-15T09:40:48.8643773Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8643864Z               "line": 819
2026-06-15T09:40:48.8643941Z             },
2026-06-15T09:40:48.8644021Z             {
2026-06-15T09:40:48.8644121Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8644213Z               "line": 838
2026-06-15T09:40:48.8644294Z             },
2026-06-15T09:40:48.8644378Z             {
2026-06-15T09:40:48.8644501Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8644587Z               "line": 279
2026-06-15T09:40:48.8644667Z             },
2026-06-15T09:40:48.8644752Z             {
2026-06-15T09:40:48.8644867Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:40:48.8644943Z               "line": 82
2026-06-15T09:40:48.8645024Z             },
2026-06-15T09:40:48.8645109Z             {
2026-06-15T09:40:48.8645210Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:40:48.8645310Z               "line": 99
2026-06-15T09:40:48.8645385Z             },
2026-06-15T09:40:48.8645471Z             {
2026-06-15T09:40:48.8645592Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T09:40:48.8645677Z               "line": 119
2026-06-15T09:40:48.8645767Z             }
2026-06-15T09:40:48.8645840Z           ]
2026-06-15T09:40:48.8645920Z         }
2026-06-15T09:40:48.8646001Z       }
2026-06-15T09:40:48.8646082Z     },
2026-06-15T09:40:48.8646159Z     {
2026-06-15T09:40:48.8646268Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T09:40:48.8647555Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T09:40:48.8647654Z       "requiredStages": [
2026-06-15T09:40:48.8647745Z         "doc",
2026-06-15T09:40:48.8647836Z         "impl",
2026-06-15T09:40:48.8647917Z         "unit"
2026-06-15T09:40:48.8647993Z       ],
2026-06-15T09:40:48.8648070Z       "stages": {
2026-06-15T09:40:48.8648160Z         "doc": {
2026-06-15T09:40:48.8648236Z           "complete": true,
2026-06-15T09:40:48.8648327Z           "evidence": [
2026-06-15T09:40:48.8648414Z             {
2026-06-15T09:40:48.8648513Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8648603Z               "line": 157
2026-06-15T09:40:48.8648680Z             }
2026-06-15T09:40:48.8648757Z           ]
2026-06-15T09:40:48.8648832Z         },
2026-06-15T09:40:48.8648913Z         "impl": {
2026-06-15T09:40:48.8649077Z           "complete": true,
2026-06-15T09:40:48.8649161Z           "evidence": [
2026-06-15T09:40:48.8649242Z             {
2026-06-15T09:40:48.8649475Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.8649566Z               "line": 137
2026-06-15T09:40:48.8649728Z             },
2026-06-15T09:40:48.8649802Z             {
2026-06-15T09:40:48.8649930Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8650017Z               "line": 512
2026-06-15T09:40:48.8650098Z             },
2026-06-15T09:40:48.8650169Z             {
2026-06-15T09:40:48.8650293Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8650375Z               "line": 519
2026-06-15T09:40:48.8650455Z             },
2026-06-15T09:40:48.8650536Z             {
2026-06-15T09:40:48.8650652Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8650727Z               "line": 227
2026-06-15T09:40:48.8650807Z             }
2026-06-15T09:40:48.8650888Z           ]
2026-06-15T09:40:48.8650971Z         },
2026-06-15T09:40:48.8651047Z         "int": {
2026-06-15T09:40:48.8651142Z           "complete": false,
2026-06-15T09:40:48.8651237Z           "evidence": []
2026-06-15T09:40:48.8651314Z         },
2026-06-15T09:40:48.8651394Z         "unit": {
2026-06-15T09:40:48.8651490Z           "complete": true,
2026-06-15T09:40:48.8651567Z           "evidence": [
2026-06-15T09:40:48.8651643Z             {
2026-06-15T09:40:48.8651766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8651842Z               "line": 1515
2026-06-15T09:40:48.8651920Z             },
2026-06-15T09:40:48.8651996Z             {
2026-06-15T09:40:48.8652124Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8652201Z               "line": 1573
2026-06-15T09:40:48.8652287Z             },
2026-06-15T09:40:48.8652371Z             {
2026-06-15T09:40:48.8652485Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8652581Z               "line": 851
2026-06-15T09:40:48.8652656Z             }
2026-06-15T09:40:48.8652741Z           ]
2026-06-15T09:40:48.8652821Z         }
2026-06-15T09:40:48.8652907Z       }
2026-06-15T09:40:48.8652989Z     },
2026-06-15T09:40:48.8653079Z     {
2026-06-15T09:40:48.8653194Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T09:40:48.8653379Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T09:40:48.8653475Z       "requiredStages": [
2026-06-15T09:40:48.8653556Z         "impl",
2026-06-15T09:40:48.8653642Z         "unit"
2026-06-15T09:40:48.8653727Z       ],
2026-06-15T09:40:48.8653804Z       "stages": {
2026-06-15T09:40:48.8653881Z         "doc": {
2026-06-15T09:40:48.8653961Z           "complete": false,
2026-06-15T09:40:48.8654052Z           "evidence": []
2026-06-15T09:40:48.8654128Z         },
2026-06-15T09:40:48.8654214Z         "impl": {
2026-06-15T09:40:48.8654309Z           "complete": true,
2026-06-15T09:40:48.8654385Z           "evidence": [
2026-06-15T09:40:48.8654468Z             {
2026-06-15T09:40:48.8654572Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8654662Z               "line": 15
2026-06-15T09:40:48.8654744Z             },
2026-06-15T09:40:48.8654820Z             {
2026-06-15T09:40:48.8654938Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8655019Z               "line": 55
2026-06-15T09:40:48.8655109Z             },
2026-06-15T09:40:48.8655190Z             {
2026-06-15T09:40:48.8655302Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8655388Z               "line": 66
2026-06-15T09:40:48.8655464Z             },
2026-06-15T09:40:48.8655542Z             {
2026-06-15T09:40:48.8655650Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8655746Z               "line": 115
2026-06-15T09:40:48.8655823Z             },
2026-06-15T09:40:48.8655913Z             {
2026-06-15T09:40:48.8656018Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8656099Z               "line": 138
2026-06-15T09:40:48.8656180Z             }
2026-06-15T09:40:48.8656347Z           ]
2026-06-15T09:40:48.8656433Z         },
2026-06-15T09:40:48.8656513Z         "int": {
2026-06-15T09:40:48.8656675Z           "complete": false,
2026-06-15T09:40:48.8656763Z           "evidence": []
2026-06-15T09:40:48.8656842Z         },
2026-06-15T09:40:48.8656928Z         "unit": {
2026-06-15T09:40:48.8657020Z           "complete": true,
2026-06-15T09:40:48.8657110Z           "evidence": [
2026-06-15T09:40:48.8657190Z             {
2026-06-15T09:40:48.8657301Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8657387Z               "line": 149
2026-06-15T09:40:48.8657467Z             },
2026-06-15T09:40:48.8657539Z             {
2026-06-15T09:40:48.8657635Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8657731Z               "line": 155
2026-06-15T09:40:48.8657810Z             },
2026-06-15T09:40:48.8657900Z             {
2026-06-15T09:40:48.8658015Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8658107Z               "line": 169
2026-06-15T09:40:48.8658181Z             },
2026-06-15T09:40:48.8658267Z             {
2026-06-15T09:40:48.8658368Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8658454Z               "line": 178
2026-06-15T09:40:48.8658539Z             },
2026-06-15T09:40:48.8658621Z             {
2026-06-15T09:40:48.8658730Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8658811Z               "line": 195
2026-06-15T09:40:48.8658892Z             },
2026-06-15T09:40:48.8659045Z             {
2026-06-15T09:40:48.8659158Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8659235Z               "line": 208
2026-06-15T09:40:48.8659318Z             },
2026-06-15T09:40:48.8659397Z             {
2026-06-15T09:40:48.8659512Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8659584Z               "line": 271
2026-06-15T09:40:48.8659675Z             },
2026-06-15T09:40:48.8659759Z             {
2026-06-15T09:40:48.8659869Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8659957Z               "line": 290
2026-06-15T09:40:48.8660040Z             },
2026-06-15T09:40:48.8660117Z             {
2026-06-15T09:40:48.8660221Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8660311Z               "line": 319
2026-06-15T09:40:48.8660395Z             }
2026-06-15T09:40:48.8660481Z           ]
2026-06-15T09:40:48.8660557Z         }
2026-06-15T09:40:48.8660639Z       }
2026-06-15T09:40:48.8660724Z     },
2026-06-15T09:40:48.8660805Z     {
2026-06-15T09:40:48.8660921Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T09:40:48.8661163Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T09:40:48.8661249Z       "requiredStages": [
2026-06-15T09:40:48.8661335Z         "impl",
2026-06-15T09:40:48.8661411Z         "unit",
2026-06-15T09:40:48.8661493Z         "int"
2026-06-15T09:40:48.8661574Z       ],
2026-06-15T09:40:48.8661664Z       "stages": {
2026-06-15T09:40:48.8661740Z         "doc": {
2026-06-15T09:40:48.8661831Z           "complete": false,
2026-06-15T09:40:48.8661912Z           "evidence": []
2026-06-15T09:40:48.8661993Z         },
2026-06-15T09:40:48.8662078Z         "impl": {
2026-06-15T09:40:48.8662170Z           "complete": true,
2026-06-15T09:40:48.8662255Z           "evidence": [
2026-06-15T09:40:48.8665323Z             {
2026-06-15T09:40:48.8665484Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8665574Z               "line": 447
2026-06-15T09:40:48.8665655Z             },
2026-06-15T09:40:48.8665736Z             {
2026-06-15T09:40:48.8665858Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8665943Z               "line": 867
2026-06-15T09:40:48.8666016Z             },
2026-06-15T09:40:48.8666097Z             {
2026-06-15T09:40:48.8666215Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8666445Z               "line": 912
2026-06-15T09:40:48.8666525Z             },
2026-06-15T09:40:48.8666688Z             {
2026-06-15T09:40:48.8666802Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.8666887Z               "line": 937
2026-06-15T09:40:48.8666970Z             },
2026-06-15T09:40:48.8667050Z             {
2026-06-15T09:40:48.8667169Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8667255Z               "line": 987
2026-06-15T09:40:48.8667332Z             },
2026-06-15T09:40:48.8667412Z             {
2026-06-15T09:40:48.8667531Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8667609Z               "line": 1113
2026-06-15T09:40:48.8667684Z             },
2026-06-15T09:40:48.8667765Z             {
2026-06-15T09:40:48.8667880Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8667962Z               "line": 1244
2026-06-15T09:40:48.8668041Z             },
2026-06-15T09:40:48.8668128Z             {
2026-06-15T09:40:48.8668229Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8668328Z               "line": 1292
2026-06-15T09:40:48.8668408Z             },
2026-06-15T09:40:48.8668489Z             {
2026-06-15T09:40:48.8668594Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8668681Z               "line": 46
2026-06-15T09:40:48.8668760Z             },
2026-06-15T09:40:48.8668836Z             {
2026-06-15T09:40:48.8669019Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8669094Z               "line": 167
2026-06-15T09:40:48.8669176Z             },
2026-06-15T09:40:48.8669258Z             {
2026-06-15T09:40:48.8669371Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.8669452Z               "line": 132
2026-06-15T09:40:48.8669534Z             },
2026-06-15T09:40:48.8669614Z             {
2026-06-15T09:40:48.8669719Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8669815Z               "line": 137
2026-06-15T09:40:48.8669887Z             },
2026-06-15T09:40:48.8669971Z             {
2026-06-15T09:40:48.8670076Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8670159Z               "line": 183
2026-06-15T09:40:48.8670240Z             }
2026-06-15T09:40:48.8670319Z           ]
2026-06-15T09:40:48.8670406Z         },
2026-06-15T09:40:48.8670483Z         "int": {
2026-06-15T09:40:48.8670578Z           "complete": true,
2026-06-15T09:40:48.8670662Z           "evidence": [
2026-06-15T09:40:48.8670738Z             {
2026-06-15T09:40:48.8670863Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T09:40:48.8670941Z               "line": 27
2026-06-15T09:40:48.8671027Z             },
2026-06-15T09:40:48.8671104Z             {
2026-06-15T09:40:48.8671229Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T09:40:48.8671308Z               "line": 129
2026-06-15T09:40:48.8671375Z             },
2026-06-15T09:40:48.8671461Z             {
2026-06-15T09:40:48.8671581Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T09:40:48.8671666Z               "line": 200
2026-06-15T09:40:48.8671747Z             }
2026-06-15T09:40:48.8671833Z           ]
2026-06-15T09:40:48.8671905Z         },
2026-06-15T09:40:48.8671985Z         "unit": {
2026-06-15T09:40:48.8672082Z           "complete": true,
2026-06-15T09:40:48.8672167Z           "evidence": [
2026-06-15T09:40:48.8672252Z             {
2026-06-15T09:40:48.8672367Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8672454Z               "line": 313
2026-06-15T09:40:48.8672529Z             },
2026-06-15T09:40:48.8672610Z             {
2026-06-15T09:40:48.8672726Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8672806Z               "line": 345
2026-06-15T09:40:48.8672887Z             },
2026-06-15T09:40:48.8672968Z             {
2026-06-15T09:40:48.8673074Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T09:40:48.8673287Z               "line": 366
2026-06-15T09:40:48.8673365Z             },
2026-06-15T09:40:48.8673529Z             {
2026-06-15T09:40:48.8673644Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8673730Z               "line": 508
2026-06-15T09:40:48.8673809Z             },
2026-06-15T09:40:48.8673884Z             {
2026-06-15T09:40:48.8673999Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:40:48.8674076Z               "line": 289
2026-06-15T09:40:48.8674151Z             },
2026-06-15T09:40:48.8674232Z             {
2026-06-15T09:40:48.8674334Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:40:48.8674424Z               "line": 230
2026-06-15T09:40:48.8674499Z             },
2026-06-15T09:40:48.8674580Z             {
2026-06-15T09:40:48.8674691Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8674781Z               "line": 526
2026-06-15T09:40:48.8674862Z             },
2026-06-15T09:40:48.8674943Z             {
2026-06-15T09:40:48.8675057Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.8675148Z               "line": 556
2026-06-15T09:40:48.8675224Z             }
2026-06-15T09:40:48.8675302Z           ]
2026-06-15T09:40:48.8675372Z         }
2026-06-15T09:40:48.8675453Z       }
2026-06-15T09:40:48.8675539Z     },
2026-06-15T09:40:48.8675622Z     {
2026-06-15T09:40:48.8675744Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T09:40:48.8677457Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T09:40:48.8677563Z       "requiredStages": [
2026-06-15T09:40:48.8677653Z         "doc",
2026-06-15T09:40:48.8677743Z         "impl",
2026-06-15T09:40:48.8677820Z         "unit"
2026-06-15T09:40:48.8677906Z       ],
2026-06-15T09:40:48.8677987Z       "stages": {
2026-06-15T09:40:48.8678077Z         "doc": {
2026-06-15T09:40:48.8678169Z           "complete": true,
2026-06-15T09:40:48.8678258Z           "evidence": [
2026-06-15T09:40:48.8678340Z             {
2026-06-15T09:40:48.8678445Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8678536Z               "line": 307
2026-06-15T09:40:48.8678621Z             }
2026-06-15T09:40:48.8678702Z           ]
2026-06-15T09:40:48.8678789Z         },
2026-06-15T09:40:48.8678870Z         "impl": {
2026-06-15T09:40:48.8679044Z           "complete": true,
2026-06-15T09:40:48.8679121Z           "evidence": [
2026-06-15T09:40:48.8679207Z             {
2026-06-15T09:40:48.8679349Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:40:48.8679464Z               "line": 33
2026-06-15T09:40:48.8679550Z             },
2026-06-15T09:40:48.8679621Z             {
2026-06-15T09:40:48.8679741Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:40:48.8679822Z               "line": 39
2026-06-15T09:40:48.8679908Z             }
2026-06-15T09:40:48.8679983Z           ]
2026-06-15T09:40:48.8680065Z         },
2026-06-15T09:40:48.8680146Z         "int": {
2026-06-15T09:40:48.8680237Z           "complete": false,
2026-06-15T09:40:48.8680317Z           "evidence": []
2026-06-15T09:40:48.8680400Z         },
2026-06-15T09:40:48.8680485Z         "unit": {
2026-06-15T09:40:48.8680566Z           "complete": true,
2026-06-15T09:40:48.8680651Z           "evidence": [
2026-06-15T09:40:48.8680738Z             {
2026-06-15T09:40:48.8680856Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T09:40:48.8680942Z               "line": 95
2026-06-15T09:40:48.8681124Z             }
2026-06-15T09:40:48.8681208Z           ]
2026-06-15T09:40:48.8681375Z         }
2026-06-15T09:40:48.8681455Z       }
2026-06-15T09:40:48.8681530Z     },
2026-06-15T09:40:48.8681611Z     {
2026-06-15T09:40:48.8681711Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T09:40:48.8683877Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T09:40:48.8683982Z       "requiredStages": [
2026-06-15T09:40:48.8684075Z         "unit"
2026-06-15T09:40:48.8684151Z       ],
2026-06-15T09:40:48.8684232Z       "stages": {
2026-06-15T09:40:48.8684313Z         "doc": {
2026-06-15T09:40:48.8684406Z           "complete": false,
2026-06-15T09:40:48.8684487Z           "evidence": []
2026-06-15T09:40:48.8684569Z         },
2026-06-15T09:40:48.8684646Z         "impl": {
2026-06-15T09:40:48.8684726Z           "complete": true,
2026-06-15T09:40:48.8684816Z           "evidence": [
2026-06-15T09:40:48.8684889Z             {
2026-06-15T09:40:48.8684994Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8685088Z               "line": 3080
2026-06-15T09:40:48.8685165Z             },
2026-06-15T09:40:48.8685247Z             {
2026-06-15T09:40:48.8685346Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8685427Z               "line": 3132
2026-06-15T09:40:48.8685504Z             },
2026-06-15T09:40:48.8685585Z             {
2026-06-15T09:40:48.8685685Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8685775Z               "line": 3177
2026-06-15T09:40:48.8685853Z             },
2026-06-15T09:40:48.8685932Z             {
2026-06-15T09:40:48.8686042Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8686124Z               "line": 92
2026-06-15T09:40:48.8686210Z             },
2026-06-15T09:40:48.8686289Z             {
2026-06-15T09:40:48.8686390Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8686467Z               "line": 148
2026-06-15T09:40:48.8686548Z             },
2026-06-15T09:40:48.8686628Z             {
2026-06-15T09:40:48.8686732Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8686818Z               "line": 192
2026-06-15T09:40:48.8686898Z             },
2026-06-15T09:40:48.8686978Z             {
2026-06-15T09:40:48.8687078Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8687160Z               "line": 200
2026-06-15T09:40:48.8687232Z             },
2026-06-15T09:40:48.8687321Z             {
2026-06-15T09:40:48.8687426Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8687508Z               "line": 211
2026-06-15T09:40:48.8687589Z             },
2026-06-15T09:40:48.8687669Z             {
2026-06-15T09:40:48.8687766Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8687856Z               "line": 265
2026-06-15T09:40:48.8687932Z             },
2026-06-15T09:40:48.8688012Z             {
2026-06-15T09:40:48.8688109Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8688189Z               "line": 279
2026-06-15T09:40:48.8688270Z             }
2026-06-15T09:40:48.8688337Z           ]
2026-06-15T09:40:48.8688420Z         },
2026-06-15T09:40:48.8688495Z         "int": {
2026-06-15T09:40:48.8688585Z           "complete": false,
2026-06-15T09:40:48.8688676Z           "evidence": []
2026-06-15T09:40:48.8688833Z         },
2026-06-15T09:40:48.8688923Z         "unit": {
2026-06-15T09:40:48.8689091Z           "complete": true,
2026-06-15T09:40:48.8689286Z           "evidence": [
2026-06-15T09:40:48.8689359Z             {
2026-06-15T09:40:48.8689472Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8689552Z               "line": 419
2026-06-15T09:40:48.8689628Z             },
2026-06-15T09:40:48.8689705Z             {
2026-06-15T09:40:48.8689810Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8689895Z               "line": 470
2026-06-15T09:40:48.8689971Z             },
2026-06-15T09:40:48.8690053Z             {
2026-06-15T09:40:48.8690153Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8690228Z               "line": 499
2026-06-15T09:40:48.8690306Z             },
2026-06-15T09:40:48.8690387Z             {
2026-06-15T09:40:48.8690491Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8690572Z               "line": 526
2026-06-15T09:40:48.8690654Z             }
2026-06-15T09:40:48.8690735Z           ]
2026-06-15T09:40:48.8690816Z         }
2026-06-15T09:40:48.8690901Z       }
2026-06-15T09:40:48.8690979Z     },
2026-06-15T09:40:48.8691064Z     {
2026-06-15T09:40:48.8691164Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T09:40:48.8691350Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T09:40:48.8691444Z       "requiredStages": [
2026-06-15T09:40:48.8691521Z         "impl",
2026-06-15T09:40:48.8691604Z         "unit"
2026-06-15T09:40:48.8691684Z       ],
2026-06-15T09:40:48.8691773Z       "stages": {
2026-06-15T09:40:48.8691859Z         "doc": {
2026-06-15T09:40:48.8691944Z           "complete": false,
2026-06-15T09:40:48.8692039Z           "evidence": []
2026-06-15T09:40:48.8692114Z         },
2026-06-15T09:40:48.8692195Z         "impl": {
2026-06-15T09:40:48.8692276Z           "complete": true,
2026-06-15T09:40:48.8692372Z           "evidence": [
2026-06-15T09:40:48.8692457Z             {
2026-06-15T09:40:48.8692577Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8692667Z               "line": 62
2026-06-15T09:40:48.8692743Z             },
2026-06-15T09:40:48.8692824Z             {
2026-06-15T09:40:48.8692945Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8693025Z               "line": 71
2026-06-15T09:40:48.8693100Z             },
2026-06-15T09:40:48.8693178Z             {
2026-06-15T09:40:48.8693302Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8693378Z               "line": 80
2026-06-15T09:40:48.8693459Z             },
2026-06-15T09:40:48.8693540Z             {
2026-06-15T09:40:48.8693654Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8693735Z               "line": 88
2026-06-15T09:40:48.8693802Z             },
2026-06-15T09:40:48.8693884Z             {
2026-06-15T09:40:48.8693997Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8694088Z               "line": 33
2026-06-15T09:40:48.8694170Z             },
2026-06-15T09:40:48.8694260Z             {
2026-06-15T09:40:48.8694365Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8694447Z               "line": 65
2026-06-15T09:40:48.8694523Z             },
2026-06-15T09:40:48.8694594Z             {
2026-06-15T09:40:48.8694702Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8694783Z               "line": 74
2026-06-15T09:40:48.8694864Z             },
2026-06-15T09:40:48.8694943Z             {
2026-06-15T09:40:48.8695052Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8695129Z               "line": 93
2026-06-15T09:40:48.8695210Z             },
2026-06-15T09:40:48.8695291Z             {
2026-06-15T09:40:48.8695390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8695473Z               "line": 102
2026-06-15T09:40:48.8695554Z             },
2026-06-15T09:40:48.8695735Z             {
2026-06-15T09:40:48.8695840Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8695996Z               "line": 111
2026-06-15T09:40:48.8696078Z             },
2026-06-15T09:40:48.8696150Z             {
2026-06-15T09:40:48.8696264Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8696354Z               "line": 122
2026-06-15T09:40:48.8696427Z             },
2026-06-15T09:40:48.8696502Z             {
2026-06-15T09:40:48.8696602Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8696684Z               "line": 140
2026-06-15T09:40:48.8696761Z             },
2026-06-15T09:40:48.8696850Z             {
2026-06-15T09:40:48.8696946Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8697023Z               "line": 149
2026-06-15T09:40:48.8697104Z             },
2026-06-15T09:40:48.8697174Z             {
2026-06-15T09:40:48.8697278Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8697374Z               "line": 158
2026-06-15T09:40:48.8697454Z             },
2026-06-15T09:40:48.8697538Z             {
2026-06-15T09:40:48.8697643Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8697725Z               "line": 169
2026-06-15T09:40:48.8697806Z             },
2026-06-15T09:40:48.8697886Z             {
2026-06-15T09:40:48.8697996Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8698073Z               "line": 177
2026-06-15T09:40:48.8698149Z             },
2026-06-15T09:40:48.8698229Z             {
2026-06-15T09:40:48.8698336Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8698411Z               "line": 186
2026-06-15T09:40:48.8698487Z             },
2026-06-15T09:40:48.8698568Z             {
2026-06-15T09:40:48.8698674Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8698768Z               "line": 195
2026-06-15T09:40:48.8698849Z             },
2026-06-15T09:40:48.8698936Z             {
2026-06-15T09:40:48.8699126Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8699221Z               "line": 204
2026-06-15T09:40:48.8699294Z             },
2026-06-15T09:40:48.8699374Z             {
2026-06-15T09:40:48.8699483Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8699566Z               "line": 216
2026-06-15T09:40:48.8699643Z             },
2026-06-15T09:40:48.8699721Z             {
2026-06-15T09:40:48.8699837Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8699914Z               "line": 223
2026-06-15T09:40:48.8699995Z             },
2026-06-15T09:40:48.8700074Z             {
2026-06-15T09:40:48.8700178Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8700260Z               "line": 232
2026-06-15T09:40:48.8700328Z             },
2026-06-15T09:40:48.8700413Z             {
2026-06-15T09:40:48.8700522Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8700609Z               "line": 239
2026-06-15T09:40:48.8700680Z             },
2026-06-15T09:40:48.8700765Z             {
2026-06-15T09:40:48.8700876Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8700961Z               "line": 306
2026-06-15T09:40:48.8701047Z             },
2026-06-15T09:40:48.8701122Z             {
2026-06-15T09:40:48.8701229Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8701319Z               "line": 318
2026-06-15T09:40:48.8701399Z             },
2026-06-15T09:40:48.8701481Z             {
2026-06-15T09:40:48.8701581Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8701667Z               "line": 405
2026-06-15T09:40:48.8701752Z             }
2026-06-15T09:40:48.8701830Z           ]
2026-06-15T09:40:48.8701910Z         },
2026-06-15T09:40:48.8701991Z         "int": {
2026-06-15T09:40:48.8702091Z           "complete": false,
2026-06-15T09:40:48.8702169Z           "evidence": []
2026-06-15T09:40:48.8702371Z         },
2026-06-15T09:40:48.8702452Z         "unit": {
2026-06-15T09:40:48.8702533Z           "complete": true,
2026-06-15T09:40:48.8702716Z           "evidence": [
2026-06-15T09:40:48.8702789Z             {
2026-06-15T09:40:48.8702904Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8702984Z               "line": 487
2026-06-15T09:40:48.8703060Z             },
2026-06-15T09:40:48.8703137Z             {
2026-06-15T09:40:48.8703237Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8703318Z               "line": 528
2026-06-15T09:40:48.8703394Z             },
2026-06-15T09:40:48.8703476Z             {
2026-06-15T09:40:48.8703585Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8703670Z               "line": 541
2026-06-15T09:40:48.8703758Z             },
2026-06-15T09:40:48.8703838Z             {
2026-06-15T09:40:48.8703938Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8704019Z               "line": 627
2026-06-15T09:40:48.8704101Z             }
2026-06-15T09:40:48.8704186Z           ]
2026-06-15T09:40:48.8704262Z         }
2026-06-15T09:40:48.8704343Z       }
2026-06-15T09:40:48.8704420Z     },
2026-06-15T09:40:48.8704500Z     {
2026-06-15T09:40:48.8704601Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T09:40:48.8704787Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T09:40:48.8704886Z       "requiredStages": [
2026-06-15T09:40:48.8704968Z         "impl",
2026-06-15T09:40:48.8705046Z         "unit"
2026-06-15T09:40:48.8705126Z       ],
2026-06-15T09:40:48.8705205Z       "stages": {
2026-06-15T09:40:48.8705281Z         "doc": {
2026-06-15T09:40:48.8705377Z           "complete": false,
2026-06-15T09:40:48.8705461Z           "evidence": []
2026-06-15T09:40:48.8705536Z         },
2026-06-15T09:40:48.8705617Z         "impl": {
2026-06-15T09:40:48.8705699Z           "complete": true,
2026-06-15T09:40:48.8705790Z           "evidence": [
2026-06-15T09:40:48.8705870Z             {
2026-06-15T09:40:48.8705975Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.8706076Z               "line": 152
2026-06-15T09:40:48.8706152Z             },
2026-06-15T09:40:48.8706237Z             {
2026-06-15T09:40:48.8706357Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8706443Z               "line": 167
2026-06-15T09:40:48.8706523Z             }
2026-06-15T09:40:48.8706609Z           ]
2026-06-15T09:40:48.8706696Z         },
2026-06-15T09:40:48.8706781Z         "int": {
2026-06-15T09:40:48.8706876Z           "complete": false,
2026-06-15T09:40:48.8706958Z           "evidence": []
2026-06-15T09:40:48.8707044Z         },
2026-06-15T09:40:48.8707129Z         "unit": {
2026-06-15T09:40:48.8707220Z           "complete": true,
2026-06-15T09:40:48.8707316Z           "evidence": [
2026-06-15T09:40:48.8707396Z             {
2026-06-15T09:40:48.8707510Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.8707598Z               "line": 274
2026-06-15T09:40:48.8707683Z             },
2026-06-15T09:40:48.8707762Z             {
2026-06-15T09:40:48.8707891Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8707986Z               "line": 712
2026-06-15T09:40:48.8708065Z             },
2026-06-15T09:40:48.8708155Z             {
2026-06-15T09:40:48.8708251Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8708343Z               "line": 725
2026-06-15T09:40:48.8708413Z             }
2026-06-15T09:40:48.8708499Z           ]
2026-06-15T09:40:48.8708576Z         }
2026-06-15T09:40:48.8708656Z       }
2026-06-15T09:40:48.8708742Z     },
2026-06-15T09:40:48.8708809Z     {
2026-06-15T09:40:48.8708910Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T09:40:48.8709094Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T09:40:48.8709191Z       "requiredStages": [
2026-06-15T09:40:48.8709272Z         "impl",
2026-06-15T09:40:48.8709353Z         "unit"
2026-06-15T09:40:48.8709540Z       ],
2026-06-15T09:40:48.8709619Z       "stages": {
2026-06-15T09:40:48.8709786Z         "doc": {
2026-06-15T09:40:48.8709864Z           "complete": false,
2026-06-15T09:40:48.8709958Z           "evidence": []
2026-06-15T09:40:48.8710029Z         },
2026-06-15T09:40:48.8710111Z         "impl": {
2026-06-15T09:40:48.8710212Z           "complete": true,
2026-06-15T09:40:48.8710291Z           "evidence": [
2026-06-15T09:40:48.8710368Z             {
2026-06-15T09:40:48.8710484Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8710569Z               "line": 114
2026-06-15T09:40:48.8710644Z             },
2026-06-15T09:40:48.8710719Z             {
2026-06-15T09:40:48.8710840Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.8710916Z               "line": 481
2026-06-15T09:40:48.8711001Z             }
2026-06-15T09:40:48.8711077Z           ]
2026-06-15T09:40:48.8711155Z         },
2026-06-15T09:40:48.8711236Z         "int": {
2026-06-15T09:40:48.8711330Z           "complete": false,
2026-06-15T09:40:48.8711421Z           "evidence": []
2026-06-15T09:40:48.8711502Z         },
2026-06-15T09:40:48.8711579Z         "unit": {
2026-06-15T09:40:48.8711664Z           "complete": true,
2026-06-15T09:40:48.8711755Z           "evidence": [
2026-06-15T09:40:48.8711831Z             {
2026-06-15T09:40:48.8711950Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.8712036Z               "line": 515
2026-06-15T09:40:48.8712109Z             }
2026-06-15T09:40:48.8712193Z           ]
2026-06-15T09:40:48.8712274Z         }
2026-06-15T09:40:48.8712351Z       }
2026-06-15T09:40:48.8712438Z     },
2026-06-15T09:40:48.8712513Z     {
2026-06-15T09:40:48.8712637Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T09:40:48.8712795Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T09:40:48.8712894Z       "requiredStages": [
2026-06-15T09:40:48.8712969Z         "impl",
2026-06-15T09:40:48.8713060Z         "unit"
2026-06-15T09:40:48.8713145Z       ],
2026-06-15T09:40:48.8713225Z       "stages": {
2026-06-15T09:40:48.8713310Z         "doc": {
2026-06-15T09:40:48.8713387Z           "complete": false,
2026-06-15T09:40:48.8713478Z           "evidence": []
2026-06-15T09:40:48.8713558Z         },
2026-06-15T09:40:48.8713640Z         "impl": {
2026-06-15T09:40:48.8713736Z           "complete": true,
2026-06-15T09:40:48.8713821Z           "evidence": [
2026-06-15T09:40:48.8713911Z             {
2026-06-15T09:40:48.8714027Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8714122Z               "line": 502
2026-06-15T09:40:48.8714207Z             },
2026-06-15T09:40:48.8714293Z             {
2026-06-15T09:40:48.8714408Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8714493Z               "line": 28
2026-06-15T09:40:48.8714584Z             }
2026-06-15T09:40:48.8714652Z           ]
2026-06-15T09:40:48.8714741Z         },
2026-06-15T09:40:48.8714817Z         "int": {
2026-06-15T09:40:48.8714913Z           "complete": false,
2026-06-15T09:40:48.8715023Z           "evidence": []
2026-06-15T09:40:48.8715098Z         },
2026-06-15T09:40:48.8715180Z         "unit": {
2026-06-15T09:40:48.8715262Z           "complete": true,
2026-06-15T09:40:48.8715347Z           "evidence": [
2026-06-15T09:40:48.8715427Z             {
2026-06-15T09:40:48.8715548Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8715634Z               "line": 229
2026-06-15T09:40:48.8715714Z             }
2026-06-15T09:40:48.8715808Z           ]
2026-06-15T09:40:48.8715884Z         }
2026-06-15T09:40:48.8715970Z       }
2026-06-15T09:40:48.8716035Z     },
2026-06-15T09:40:48.8716125Z     {
2026-06-15T09:40:48.8716225Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T09:40:48.8716355Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T09:40:48.8716449Z       "requiredStages": [],
2026-06-15T09:40:48.8716530Z       "stages": {
2026-06-15T09:40:48.8716698Z         "doc": {
2026-06-15T09:40:48.8716783Z           "complete": false,
2026-06-15T09:40:48.8716946Z           "evidence": []
2026-06-15T09:40:48.8717032Z         },
2026-06-15T09:40:48.8717111Z         "impl": {
2026-06-15T09:40:48.8717209Z           "complete": false,
2026-06-15T09:40:48.8717289Z           "evidence": []
2026-06-15T09:40:48.8717370Z         },
2026-06-15T09:40:48.8717451Z         "int": {
2026-06-15T09:40:48.8717542Z           "complete": false,
2026-06-15T09:40:48.8717627Z           "evidence": []
2026-06-15T09:40:48.8717708Z         },
2026-06-15T09:40:48.8717785Z         "unit": {
2026-06-15T09:40:48.8717862Z           "complete": false,
2026-06-15T09:40:48.8717956Z           "evidence": []
2026-06-15T09:40:48.8718038Z         }
2026-06-15T09:40:48.8718119Z       }
2026-06-15T09:40:48.8718210Z     },
2026-06-15T09:40:48.8718285Z     {
2026-06-15T09:40:48.8718398Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T09:40:48.8718542Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T09:40:48.8718645Z       "requiredStages": [
2026-06-15T09:40:48.8718725Z         "impl",
2026-06-15T09:40:48.8718802Z         "unit"
2026-06-15T09:40:48.8718888Z       ],
2026-06-15T09:40:48.8719040Z       "stages": {
2026-06-15T09:40:48.8719126Z         "doc": {
2026-06-15T09:40:48.8719217Z           "complete": false,
2026-06-15T09:40:48.8719307Z           "evidence": []
2026-06-15T09:40:48.8719383Z         },
2026-06-15T09:40:48.8719465Z         "impl": {
2026-06-15T09:40:48.8719560Z           "complete": true,
2026-06-15T09:40:48.8719640Z           "evidence": [
2026-06-15T09:40:48.8719712Z             {
2026-06-15T09:40:48.8719823Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T09:40:48.8719903Z               "line": 19
2026-06-15T09:40:48.8719979Z             },
2026-06-15T09:40:48.8720056Z             {
2026-06-15T09:40:48.8720175Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8720256Z               "line": 347
2026-06-15T09:40:48.8720351Z             },
2026-06-15T09:40:48.8720429Z             {
2026-06-15T09:40:48.8720556Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8720637Z               "line": 383
2026-06-15T09:40:48.8720729Z             },
2026-06-15T09:40:48.8720805Z             {
2026-06-15T09:40:48.8720909Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8720991Z               "line": 15
2026-06-15T09:40:48.8721068Z             },
2026-06-15T09:40:48.8721148Z             {
2026-06-15T09:40:48.8721256Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8721347Z               "line": 48
2026-06-15T09:40:48.8721424Z             },
2026-06-15T09:40:48.8721495Z             {
2026-06-15T09:40:48.8721614Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8721690Z               "line": 119
2026-06-15T09:40:48.8721767Z             },
2026-06-15T09:40:48.8721843Z             {
2026-06-15T09:40:48.8721962Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8722058Z               "line": 3508
2026-06-15T09:40:48.8722135Z             }
2026-06-15T09:40:48.8722219Z           ]
2026-06-15T09:40:48.8722301Z         },
2026-06-15T09:40:48.8722387Z         "int": {
2026-06-15T09:40:48.8722468Z           "complete": false,
2026-06-15T09:40:48.8722558Z           "evidence": []
2026-06-15T09:40:48.8722640Z         },
2026-06-15T09:40:48.8722721Z         "unit": {
2026-06-15T09:40:48.8722811Z           "complete": true,
2026-06-15T09:40:48.8722892Z           "evidence": [
2026-06-15T09:40:48.8722979Z             {
2026-06-15T09:40:48.8723091Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.8723173Z               "line": 496
2026-06-15T09:40:48.8723255Z             },
2026-06-15T09:40:48.8723337Z             {
2026-06-15T09:40:48.8723449Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8723525Z               "line": 165
2026-06-15T09:40:48.8723714Z             },
2026-06-15T09:40:48.8723795Z             {
2026-06-15T09:40:48.8723909Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T09:40:48.8724095Z               "line": 175
2026-06-15T09:40:48.8724175Z             }
2026-06-15T09:40:48.8724252Z           ]
2026-06-15T09:40:48.8724329Z         }
2026-06-15T09:40:48.8724409Z       }
2026-06-15T09:40:48.8724485Z     },
2026-06-15T09:40:48.8724568Z     {
2026-06-15T09:40:48.8724672Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T09:40:48.8725541Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T09:40:48.8725640Z       "requiredStages": [
2026-06-15T09:40:48.8725725Z         "impl",
2026-06-15T09:40:48.8725798Z         "unit"
2026-06-15T09:40:48.8725879Z       ],
2026-06-15T09:40:48.8725959Z       "stages": {
2026-06-15T09:40:48.8726040Z         "doc": {
2026-06-15T09:40:48.8726141Z           "complete": false,
2026-06-15T09:40:48.8726236Z           "evidence": []
2026-06-15T09:40:48.8726316Z         },
2026-06-15T09:40:48.8726396Z         "impl": {
2026-06-15T09:40:48.8726483Z           "complete": true,
2026-06-15T09:40:48.8726563Z           "evidence": [
2026-06-15T09:40:48.8726647Z             {
2026-06-15T09:40:48.8726747Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8726829Z               "line": 192
2026-06-15T09:40:48.8726905Z             },
2026-06-15T09:40:48.8726990Z             {
2026-06-15T09:40:48.8727100Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8727187Z               "line": 279
2026-06-15T09:40:48.8727272Z             }
2026-06-15T09:40:48.8727352Z           ]
2026-06-15T09:40:48.8727430Z         },
2026-06-15T09:40:48.8727511Z         "int": {
2026-06-15T09:40:48.8727601Z           "complete": false,
2026-06-15T09:40:48.8727701Z           "evidence": []
2026-06-15T09:40:48.8727778Z         },
2026-06-15T09:40:48.8727873Z         "unit": {
2026-06-15T09:40:48.8727954Z           "complete": true,
2026-06-15T09:40:48.8728040Z           "evidence": [
2026-06-15T09:40:48.8728121Z             {
2026-06-15T09:40:48.8728235Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8728325Z               "line": 470
2026-06-15T09:40:48.8728399Z             },
2026-06-15T09:40:48.8728479Z             {
2026-06-15T09:40:48.8728583Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.8728665Z               "line": 526
2026-06-15T09:40:48.8728742Z             }
2026-06-15T09:40:48.8728822Z           ]
2026-06-15T09:40:48.8728906Z         }
2026-06-15T09:40:48.8731850Z       }
2026-06-15T09:40:48.8732051Z     },
2026-06-15T09:40:48.8732140Z     {
2026-06-15T09:40:48.8732250Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T09:40:48.8732408Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T09:40:48.8732527Z       "requiredStages": [
2026-06-15T09:40:48.8732633Z         "impl",
2026-06-15T09:40:48.8732718Z         "unit"
2026-06-15T09:40:48.8732793Z       ],
2026-06-15T09:40:48.8732885Z       "stages": {
2026-06-15T09:40:48.8732989Z         "doc": {
2026-06-15T09:40:48.8733080Z           "complete": false,
2026-06-15T09:40:48.8733171Z           "evidence": []
2026-06-15T09:40:48.8733248Z         },
2026-06-15T09:40:48.8733323Z         "impl": {
2026-06-15T09:40:48.8733418Z           "complete": true,
2026-06-15T09:40:48.8733496Z           "evidence": [
2026-06-15T09:40:48.8733572Z             {
2026-06-15T09:40:48.8733690Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8733777Z               "line": 35
2026-06-15T09:40:48.8733863Z             }
2026-06-15T09:40:48.8733934Z           ]
2026-06-15T09:40:48.8734018Z         },
2026-06-15T09:40:48.8734094Z         "int": {
2026-06-15T09:40:48.8734185Z           "complete": false,
2026-06-15T09:40:48.8734397Z           "evidence": []
2026-06-15T09:40:48.8734478Z         },
2026-06-15T09:40:48.8734660Z         "unit": {
2026-06-15T09:40:48.8734750Z           "complete": true,
2026-06-15T09:40:48.8734832Z           "evidence": [
2026-06-15T09:40:48.8734908Z             {
2026-06-15T09:40:48.8735022Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T09:40:48.8735099Z               "line": 220
2026-06-15T09:40:48.8735175Z             }
2026-06-15T09:40:48.8735252Z           ]
2026-06-15T09:40:48.8735332Z         }
2026-06-15T09:40:48.8735409Z       }
2026-06-15T09:40:48.8735486Z     },
2026-06-15T09:40:48.8735561Z     {
2026-06-15T09:40:48.8735661Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T09:40:48.8735914Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T09:40:48.8736014Z       "requiredStages": [
2026-06-15T09:40:48.8736096Z         "impl",
2026-06-15T09:40:48.8736171Z         "unit"
2026-06-15T09:40:48.8736252Z       ],
2026-06-15T09:40:48.8736343Z       "stages": {
2026-06-15T09:40:48.8736430Z         "doc": {
2026-06-15T09:40:48.8736514Z           "complete": false,
2026-06-15T09:40:48.8736591Z           "evidence": []
2026-06-15T09:40:48.8736668Z         },
2026-06-15T09:40:48.8736755Z         "impl": {
2026-06-15T09:40:48.8736843Z           "complete": true,
2026-06-15T09:40:48.8736919Z           "evidence": [
2026-06-15T09:40:48.8736995Z             {
2026-06-15T09:40:48.8737119Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.8737207Z               "line": 405
2026-06-15T09:40:48.8737288Z             },
2026-06-15T09:40:48.8737375Z             {
2026-06-15T09:40:48.8737489Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.8737584Z               "line": 409
2026-06-15T09:40:48.8737660Z             },
2026-06-15T09:40:48.8737747Z             {
2026-06-15T09:40:48.8737865Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.8737956Z               "line": 156
2026-06-15T09:40:48.8738029Z             }
2026-06-15T09:40:48.8738114Z           ]
2026-06-15T09:40:48.8738199Z         },
2026-06-15T09:40:48.8738276Z         "int": {
2026-06-15T09:40:48.8738371Z           "complete": false,
2026-06-15T09:40:48.8738462Z           "evidence": []
2026-06-15T09:40:48.8738538Z         },
2026-06-15T09:40:48.8738615Z         "unit": {
2026-06-15T09:40:48.8738705Z           "complete": true,
2026-06-15T09:40:48.8738800Z           "evidence": [
2026-06-15T09:40:48.8738876Z             {
2026-06-15T09:40:48.8739081Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.8739163Z               "line": 812
2026-06-15T09:40:48.8739235Z             },
2026-06-15T09:40:48.8739321Z             {
2026-06-15T09:40:48.8739429Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.8739523Z               "line": 826
2026-06-15T09:40:48.8739600Z             },
2026-06-15T09:40:48.8739690Z             {
2026-06-15T09:40:48.8739803Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.8739884Z               "line": 845
2026-06-15T09:40:48.8739960Z             },
2026-06-15T09:40:48.8740037Z             {
2026-06-15T09:40:48.8740145Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.8740227Z               "line": 862
2026-06-15T09:40:48.8740304Z             },
2026-06-15T09:40:48.8740380Z             {
2026-06-15T09:40:48.8740503Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.8740585Z               "line": 441
2026-06-15T09:40:48.8740666Z             }
2026-06-15T09:40:48.8740742Z           ]
2026-06-15T09:40:48.8740818Z         }
2026-06-15T09:40:48.8740896Z       }
2026-06-15T09:40:48.8740976Z     },
2026-06-15T09:40:48.8741057Z     {
2026-06-15T09:40:48.8741157Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T09:40:48.8743306Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T09:40:48.8743598Z       "requiredStages": [
2026-06-15T09:40:48.8743673Z         "unit",
2026-06-15T09:40:48.8743756Z         "int"
2026-06-15T09:40:48.8743837Z       ],
2026-06-15T09:40:48.8743917Z       "stages": {
2026-06-15T09:40:48.8743997Z         "doc": {
2026-06-15T09:40:48.8744089Z           "complete": true,
2026-06-15T09:40:48.8744189Z           "evidence": [
2026-06-15T09:40:48.8744270Z             {
2026-06-15T09:40:48.8744385Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8744466Z               "line": 374
2026-06-15T09:40:48.8744555Z             }
2026-06-15T09:40:48.8744636Z           ]
2026-06-15T09:40:48.8744717Z         },
2026-06-15T09:40:48.8744798Z         "impl": {
2026-06-15T09:40:48.8744877Z           "complete": true,
2026-06-15T09:40:48.8744957Z           "evidence": [
2026-06-15T09:40:48.8745034Z             {
2026-06-15T09:40:48.8745155Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8745238Z               "line": 97
2026-06-15T09:40:48.8745320Z             }
2026-06-15T09:40:48.8745397Z           ]
2026-06-15T09:40:48.8745483Z         },
2026-06-15T09:40:48.8745558Z         "int": {
2026-06-15T09:40:48.8745639Z           "complete": true,
2026-06-15T09:40:48.8745717Z           "evidence": [
2026-06-15T09:40:48.8745797Z             {
2026-06-15T09:40:48.8745930Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8746007Z               "line": 918
2026-06-15T09:40:48.8746093Z             }
2026-06-15T09:40:48.8746160Z           ]
2026-06-15T09:40:48.8746240Z         },
2026-06-15T09:40:48.8746322Z         "unit": {
2026-06-15T09:40:48.8746412Z           "complete": true,
2026-06-15T09:40:48.8746498Z           "evidence": [
2026-06-15T09:40:48.8746574Z             {
2026-06-15T09:40:48.8746695Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.8746769Z               "line": 1459
2026-06-15T09:40:48.8746845Z             }
2026-06-15T09:40:48.8746923Z           ]
2026-06-15T09:40:48.8747004Z         }
2026-06-15T09:40:48.8747084Z       }
2026-06-15T09:40:48.8747156Z     },
2026-06-15T09:40:48.8747223Z     {
2026-06-15T09:40:48.8747324Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T09:40:48.8748110Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T09:40:48.8748221Z       "requiredStages": [
2026-06-15T09:40:48.8748293Z         "doc",
2026-06-15T09:40:48.8748378Z         "impl",
2026-06-15T09:40:48.8748454Z         "unit"
2026-06-15T09:40:48.8748536Z       ],
2026-06-15T09:40:48.8748612Z       "stages": {
2026-06-15T09:40:48.8748689Z         "doc": {
2026-06-15T09:40:48.8748768Z           "complete": true,
2026-06-15T09:40:48.8748855Z           "evidence": [
2026-06-15T09:40:48.8748932Z             {
2026-06-15T09:40:48.8749117Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T09:40:48.8749214Z               "line": 359
2026-06-15T09:40:48.8749293Z             }
2026-06-15T09:40:48.8749370Z           ]
2026-06-15T09:40:48.8749451Z         },
2026-06-15T09:40:48.8749533Z         "impl": {
2026-06-15T09:40:48.8749622Z           "complete": true,
2026-06-15T09:40:48.8749805Z           "evidence": [
2026-06-15T09:40:48.8749886Z             {
2026-06-15T09:40:48.8749999Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.8750179Z               "line": 87
2026-06-15T09:40:48.8750264Z             },
2026-06-15T09:40:48.8750344Z             {
2026-06-15T09:40:48.8750454Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.8750530Z               "line": 105
2026-06-15T09:40:48.8750611Z             },
2026-06-15T09:40:48.8750687Z             {
2026-06-15T09:40:48.8750812Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.8750897Z               "line": 55
2026-06-15T09:40:48.8750973Z             },
2026-06-15T09:40:48.8751054Z             {
2026-06-15T09:40:48.8751169Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.8751241Z               "line": 31
2026-06-15T09:40:48.8751321Z             },
2026-06-15T09:40:48.8751403Z             {
2026-06-15T09:40:48.8751507Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.8751598Z               "line": 189
2026-06-15T09:40:48.8751683Z             },
2026-06-15T09:40:48.8751761Z             {
2026-06-15T09:40:48.8751879Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.8751965Z               "line": 95
2026-06-15T09:40:48.8752042Z             },
2026-06-15T09:40:48.8752128Z             {
2026-06-15T09:40:48.8752241Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.8752327Z               "line": 29
2026-06-15T09:40:48.8752405Z             },
2026-06-15T09:40:48.8752485Z             {
2026-06-15T09:40:48.8752599Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.8752686Z               "line": 104
2026-06-15T09:40:48.8752767Z             },
2026-06-15T09:40:48.8752847Z             {
2026-06-15T09:40:48.8752970Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8753057Z               "line": 208
2026-06-15T09:40:48.8753148Z             },
2026-06-15T09:40:48.8753218Z             {
2026-06-15T09:40:48.8753342Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:40:48.8753419Z               "line": 28
2026-06-15T09:40:48.8753491Z             },
2026-06-15T09:40:48.8753571Z             {
2026-06-15T09:40:48.8753677Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:40:48.8753762Z               "line": 74
2026-06-15T09:40:48.8753834Z             },
2026-06-15T09:40:48.8753913Z             {
2026-06-15T09:40:48.8754034Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.8754115Z               "line": 32
2026-06-15T09:40:48.8754195Z             },
2026-06-15T09:40:48.8754272Z             {
2026-06-15T09:40:48.8754387Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8754467Z               "line": 40
2026-06-15T09:40:48.8754548Z             },
2026-06-15T09:40:48.8754621Z             {
2026-06-15T09:40:48.8754735Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8754820Z               "line": 184
2026-06-15T09:40:48.8754892Z             },
2026-06-15T09:40:48.8754974Z             {
2026-06-15T09:40:48.8755082Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.8755167Z               "line": 61
2026-06-15T09:40:48.8755238Z             },
2026-06-15T09:40:48.8755320Z             {
2026-06-15T09:40:48.8755428Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.8755503Z               "line": 131
2026-06-15T09:40:48.8755585Z             },
2026-06-15T09:40:48.8755662Z             {
2026-06-15T09:40:48.8755761Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.8755842Z               "line": 223
2026-06-15T09:40:48.8755919Z             },
2026-06-15T09:40:48.8756000Z             {
2026-06-15T09:40:48.8756114Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:40:48.8756204Z               "line": 37
2026-06-15T09:40:48.8756386Z             },
2026-06-15T09:40:48.8756456Z             {
2026-06-15T09:40:48.8756644Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.8756729Z               "line": 38
2026-06-15T09:40:48.8756805Z             },
2026-06-15T09:40:48.8756887Z             {
2026-06-15T09:40:48.8756996Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.8757082Z               "line": 36
2026-06-15T09:40:48.8757163Z             },
2026-06-15T09:40:48.8757240Z             {
2026-06-15T09:40:48.8757343Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:40:48.8757420Z               "line": 40
2026-06-15T09:40:48.8757503Z             }
2026-06-15T09:40:48.8757579Z           ]
2026-06-15T09:40:48.8757663Z         },
2026-06-15T09:40:48.8757740Z         "int": {
2026-06-15T09:40:48.8757832Z           "complete": false,
2026-06-15T09:40:48.8757908Z           "evidence": []
2026-06-15T09:40:48.8757987Z         },
2026-06-15T09:40:48.8758072Z         "unit": {
2026-06-15T09:40:48.8758149Z           "complete": true,
2026-06-15T09:40:48.8758239Z           "evidence": [
2026-06-15T09:40:48.8758323Z             {
2026-06-15T09:40:48.8758442Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.8758519Z               "line": 212
2026-06-15T09:40:48.8758596Z             },
2026-06-15T09:40:48.8758680Z             {
2026-06-15T09:40:48.8758795Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T09:40:48.8758872Z               "line": 136
2026-06-15T09:40:48.8759033Z             },
2026-06-15T09:40:48.8759110Z             {
2026-06-15T09:40:48.8759234Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.8759310Z               "line": 685
2026-06-15T09:40:48.8759391Z             },
2026-06-15T09:40:48.8759468Z             {
2026-06-15T09:40:48.8759582Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.8759667Z               "line": 224
2026-06-15T09:40:48.8759759Z             },
2026-06-15T09:40:48.8759835Z             {
2026-06-15T09:40:48.8759953Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:40:48.8760040Z               "line": 206
2026-06-15T09:40:48.8760117Z             },
2026-06-15T09:40:48.8760197Z             {
2026-06-15T09:40:48.8760307Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.8760389Z               "line": 112
2026-06-15T09:40:48.8760470Z             },
2026-06-15T09:40:48.8760544Z             {
2026-06-15T09:40:48.8760658Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:40:48.8760735Z               "line": 157
2026-06-15T09:40:48.8760810Z             },
2026-06-15T09:40:48.8760890Z             {
2026-06-15T09:40:48.8761004Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.8761081Z               "line": 215
2026-06-15T09:40:48.8761162Z             },
2026-06-15T09:40:48.8761237Z             {
2026-06-15T09:40:48.8761352Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.8761429Z               "line": 141
2026-06-15T09:40:48.8761510Z             },
2026-06-15T09:40:48.8761590Z             {
2026-06-15T09:40:48.8761701Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:40:48.8761786Z               "line": 162
2026-06-15T09:40:48.8761867Z             }
2026-06-15T09:40:48.8761943Z           ]
2026-06-15T09:40:48.8762021Z         }
2026-06-15T09:40:48.8762101Z       }
2026-06-15T09:40:48.8762177Z     },
2026-06-15T09:40:48.8762253Z     {
2026-06-15T09:40:48.8762369Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T09:40:48.8762525Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T09:40:48.8762617Z       "requiredStages": [
2026-06-15T09:40:48.8762693Z         "impl",
2026-06-15T09:40:48.8762773Z         "unit"
2026-06-15T09:40:48.8762854Z       ],
2026-06-15T09:40:48.8762932Z       "stages": {
2026-06-15T09:40:48.8763008Z         "doc": {
2026-06-15T09:40:48.8763203Z           "complete": false,
2026-06-15T09:40:48.8763285Z           "evidence": []
2026-06-15T09:40:48.8763445Z         },
2026-06-15T09:40:48.8763530Z         "impl": {
2026-06-15T09:40:48.8763621Z           "complete": true,
2026-06-15T09:40:48.8763698Z           "evidence": [
2026-06-15T09:40:48.8763778Z             {
2026-06-15T09:40:48.8763893Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.8763970Z               "line": 95
2026-06-15T09:40:48.8764046Z             },
2026-06-15T09:40:48.8764117Z             {
2026-06-15T09:40:48.8764227Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8764308Z               "line": 102
2026-06-15T09:40:48.8764394Z             }
2026-06-15T09:40:48.8764479Z           ]
2026-06-15T09:40:48.8764551Z         },
2026-06-15T09:40:48.8764642Z         "int": {
2026-06-15T09:40:48.8764727Z           "complete": false,
2026-06-15T09:40:48.8764817Z           "evidence": []
2026-06-15T09:40:48.8764905Z         },
2026-06-15T09:40:48.8764985Z         "unit": {
2026-06-15T09:40:48.8765075Z           "complete": true,
2026-06-15T09:40:48.8765147Z           "evidence": [
2026-06-15T09:40:48.8765224Z             {
2026-06-15T09:40:48.8765323Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.8765399Z               "line": 250
2026-06-15T09:40:48.8765481Z             },
2026-06-15T09:40:48.8765558Z             {
2026-06-15T09:40:48.8765666Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T09:40:48.8765746Z               "line": 198
2026-06-15T09:40:48.8765837Z             },
2026-06-15T09:40:48.8765918Z             {
2026-06-15T09:40:48.8766021Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8766106Z               "line": 489
2026-06-15T09:40:48.8766188Z             },
2026-06-15T09:40:48.8766270Z             {
2026-06-15T09:40:48.8766368Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8766449Z               "line": 522
2026-06-15T09:40:48.8766522Z             }
2026-06-15T09:40:48.8766612Z           ]
2026-06-15T09:40:48.8766707Z         }
2026-06-15T09:40:48.8766784Z       }
2026-06-15T09:40:48.8766870Z     },
2026-06-15T09:40:48.8766946Z     {
2026-06-15T09:40:48.8767045Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T09:40:48.8767218Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T09:40:48.8767304Z       "requiredStages": [
2026-06-15T09:40:48.8767389Z         "impl",
2026-06-15T09:40:48.8767466Z         "unit"
2026-06-15T09:40:48.8767547Z       ],
2026-06-15T09:40:48.8767628Z       "stages": {
2026-06-15T09:40:48.8767704Z         "doc": {
2026-06-15T09:40:48.8767791Z           "complete": false,
2026-06-15T09:40:48.8767876Z           "evidence": []
2026-06-15T09:40:48.8767962Z         },
2026-06-15T09:40:48.8768048Z         "impl": {
2026-06-15T09:40:48.8768129Z           "complete": true,
2026-06-15T09:40:48.8768204Z           "evidence": [
2026-06-15T09:40:48.8768286Z             {
2026-06-15T09:40:48.8768392Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8768473Z               "line": 262
2026-06-15T09:40:48.8768562Z             },
2026-06-15T09:40:48.8768642Z             {
2026-06-15T09:40:48.8768752Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8768827Z               "line": 307
2026-06-15T09:40:48.8768911Z             },
2026-06-15T09:40:48.8769055Z             {
2026-06-15T09:40:48.8769165Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8769245Z               "line": 319
2026-06-15T09:40:48.8769326Z             }
2026-06-15T09:40:48.8769404Z           ]
2026-06-15T09:40:48.8769485Z         },
2026-06-15T09:40:48.8769564Z         "int": {
2026-06-15T09:40:48.8769641Z           "complete": false,
2026-06-15T09:40:48.8769738Z           "evidence": []
2026-06-15T09:40:48.8769814Z         },
2026-06-15T09:40:48.8769898Z         "unit": {
2026-06-15T09:40:48.8769985Z           "complete": true,
2026-06-15T09:40:48.8770166Z           "evidence": [
2026-06-15T09:40:48.8770247Z             {
2026-06-15T09:40:48.8770447Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8770528Z               "line": 455
2026-06-15T09:40:48.8770610Z             },
2026-06-15T09:40:48.8770691Z             {
2026-06-15T09:40:48.8770799Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8770886Z               "line": 499
2026-06-15T09:40:48.8770968Z             }
2026-06-15T09:40:48.8771035Z           ]
2026-06-15T09:40:48.8771119Z         }
2026-06-15T09:40:48.8771190Z       }
2026-06-15T09:40:48.8771266Z     },
2026-06-15T09:40:48.8771343Z     {
2026-06-15T09:40:48.8771436Z       "id": "REQ-HOST-RUN-1",
2026-06-15T09:40:48.8773864Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T09:40:48.8773972Z       "requiredStages": [
2026-06-15T09:40:48.8774048Z         "impl",
2026-06-15T09:40:48.8774134Z         "unit",
2026-06-15T09:40:48.8774210Z         "int"
2026-06-15T09:40:48.8774291Z       ],
2026-06-15T09:40:48.8774376Z       "stages": {
2026-06-15T09:40:48.8774458Z         "doc": {
2026-06-15T09:40:48.8774539Z           "complete": false,
2026-06-15T09:40:48.8774615Z           "evidence": []
2026-06-15T09:40:48.8774691Z         },
2026-06-15T09:40:48.8774787Z         "impl": {
2026-06-15T09:40:48.8774877Z           "complete": true,
2026-06-15T09:40:48.8774958Z           "evidence": [
2026-06-15T09:40:48.8775039Z             {
2026-06-15T09:40:48.8775164Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8775244Z               "line": 24
2026-06-15T09:40:48.8775320Z             },
2026-06-15T09:40:48.8775407Z             {
2026-06-15T09:40:48.8775526Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8775607Z               "line": 63
2026-06-15T09:40:48.8775688Z             },
2026-06-15T09:40:48.8775770Z             {
2026-06-15T09:40:48.8775874Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8775959Z               "line": 109
2026-06-15T09:40:48.8776041Z             },
2026-06-15T09:40:48.8776123Z             {
2026-06-15T09:40:48.8776226Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8776316Z               "line": 1159
2026-06-15T09:40:48.8776412Z             }
2026-06-15T09:40:48.8776496Z           ]
2026-06-15T09:40:48.8776576Z         },
2026-06-15T09:40:48.8776661Z         "int": {
2026-06-15T09:40:48.8776748Z           "complete": true,
2026-06-15T09:40:48.8776839Z           "evidence": [
2026-06-15T09:40:48.8776919Z             {
2026-06-15T09:40:48.8777039Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8777116Z               "line": 279
2026-06-15T09:40:48.8777191Z             }
2026-06-15T09:40:48.8777272Z           ]
2026-06-15T09:40:48.8777354Z         },
2026-06-15T09:40:48.8777435Z         "unit": {
2026-06-15T09:40:48.8777525Z           "complete": true,
2026-06-15T09:40:48.8777615Z           "evidence": [
2026-06-15T09:40:48.8777688Z             {
2026-06-15T09:40:48.8777811Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8777902Z               "line": 149
2026-06-15T09:40:48.8777973Z             },
2026-06-15T09:40:48.8778050Z             {
2026-06-15T09:40:48.8778249Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8778337Z               "line": 169
2026-06-15T09:40:48.8778483Z             },
2026-06-15T09:40:48.8778559Z             {
2026-06-15T09:40:48.8778684Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8778764Z               "line": 202
2026-06-15T09:40:48.8778841Z             }
2026-06-15T09:40:48.8778918Z           ]
2026-06-15T09:40:48.8779079Z         }
2026-06-15T09:40:48.8779159Z       }
2026-06-15T09:40:48.8779236Z     },
2026-06-15T09:40:48.8779317Z     {
2026-06-15T09:40:48.8779401Z       "id": "REQ-HOST-RUN-2",
2026-06-15T09:40:48.8781074Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T09:40:48.8781180Z       "requiredStages": [
2026-06-15T09:40:48.8781261Z         "impl",
2026-06-15T09:40:48.8781341Z         "unit",
2026-06-15T09:40:48.8781413Z         "int"
2026-06-15T09:40:48.8781495Z       ],
2026-06-15T09:40:48.8781585Z       "stages": {
2026-06-15T09:40:48.8781660Z         "doc": {
2026-06-15T09:40:48.8781755Z           "complete": false,
2026-06-15T09:40:48.8781831Z           "evidence": []
2026-06-15T09:40:48.8781912Z         },
2026-06-15T09:40:48.8781991Z         "impl": {
2026-06-15T09:40:48.8782086Z           "complete": true,
2026-06-15T09:40:48.8782163Z           "evidence": [
2026-06-15T09:40:48.8782249Z             {
2026-06-15T09:40:48.8782377Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T09:40:48.8782453Z               "line": 110
2026-06-15T09:40:48.8782545Z             },
2026-06-15T09:40:48.8782626Z             {
2026-06-15T09:40:48.8782725Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:40:48.8782812Z               "line": 113
2026-06-15T09:40:48.8782888Z             }
2026-06-15T09:40:48.8782973Z           ]
2026-06-15T09:40:48.8783054Z         },
2026-06-15T09:40:48.8783131Z         "int": {
2026-06-15T09:40:48.8783221Z           "complete": true,
2026-06-15T09:40:48.8783307Z           "evidence": [
2026-06-15T09:40:48.8783388Z             {
2026-06-15T09:40:48.8783503Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8783594Z               "line": 454
2026-06-15T09:40:48.8783669Z             }
2026-06-15T09:40:48.8783752Z           ]
2026-06-15T09:40:48.8783832Z         },
2026-06-15T09:40:48.8783922Z         "unit": {
2026-06-15T09:40:48.8784013Z           "complete": true,
2026-06-15T09:40:48.8784100Z           "evidence": [
2026-06-15T09:40:48.8784180Z             {
2026-06-15T09:40:48.8784303Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:40:48.8784381Z               "line": 86
2026-06-15T09:40:48.8784453Z             }
2026-06-15T09:40:48.8784532Z           ]
2026-06-15T09:40:48.8784617Z         }
2026-06-15T09:40:48.8784694Z       }
2026-06-15T09:40:48.8784775Z     },
2026-06-15T09:40:48.8784852Z     {
2026-06-15T09:40:48.8784941Z       "id": "REQ-INFRA-1",
2026-06-15T09:40:48.8785114Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T09:40:48.8785213Z       "requiredStages": [],
2026-06-15T09:40:48.8785289Z       "stages": {
2026-06-15T09:40:48.8785362Z         "doc": {
2026-06-15T09:40:48.8785457Z           "complete": false,
2026-06-15T09:40:48.8785533Z           "evidence": []
2026-06-15T09:40:48.8785609Z         },
2026-06-15T09:40:48.8785686Z         "impl": {
2026-06-15T09:40:48.8785904Z           "complete": false,
2026-06-15T09:40:48.8785996Z           "evidence": []
2026-06-15T09:40:48.8786153Z         },
2026-06-15T09:40:48.8786229Z         "int": {
2026-06-15T09:40:48.8786316Z           "complete": false,
2026-06-15T09:40:48.8786401Z           "evidence": []
2026-06-15T09:40:48.8786481Z         },
2026-06-15T09:40:48.8786558Z         "unit": {
2026-06-15T09:40:48.8786650Z           "complete": false,
2026-06-15T09:40:48.8786730Z           "evidence": []
2026-06-15T09:40:48.8786810Z         }
2026-06-15T09:40:48.8786886Z       }
2026-06-15T09:40:48.8786967Z     },
2026-06-15T09:40:48.8787043Z     {
2026-06-15T09:40:48.8787132Z       "id": "REQ-INST-1",
2026-06-15T09:40:48.8787284Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T09:40:48.8787376Z       "requiredStages": [],
2026-06-15T09:40:48.8787451Z       "stages": {
2026-06-15T09:40:48.8787527Z         "doc": {
2026-06-15T09:40:48.8787609Z           "complete": false,
2026-06-15T09:40:48.8787704Z           "evidence": []
2026-06-15T09:40:48.8787784Z         },
2026-06-15T09:40:48.8787860Z         "impl": {
2026-06-15T09:40:48.8787957Z           "complete": false,
2026-06-15T09:40:48.8788052Z           "evidence": []
2026-06-15T09:40:48.8788133Z         },
2026-06-15T09:40:48.8788205Z         "int": {
2026-06-15T09:40:48.8788286Z           "complete": false,
2026-06-15T09:40:48.8788367Z           "evidence": []
2026-06-15T09:40:48.8788452Z         },
2026-06-15T09:40:48.8788534Z         "unit": {
2026-06-15T09:40:48.8788620Z           "complete": false,
2026-06-15T09:40:48.8788696Z           "evidence": []
2026-06-15T09:40:48.8788781Z         }
2026-06-15T09:40:48.8788863Z       }
2026-06-15T09:40:48.8788935Z     },
2026-06-15T09:40:48.8789091Z     {
2026-06-15T09:40:48.8789183Z       "id": "REQ-INST-10",
2026-06-15T09:40:48.8789387Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T09:40:48.8789469Z       "requiredStages": [
2026-06-15T09:40:48.8789565Z         "impl",
2026-06-15T09:40:48.8789644Z         "unit"
2026-06-15T09:40:48.8789724Z       ],
2026-06-15T09:40:48.8789810Z       "stages": {
2026-06-15T09:40:48.8789886Z         "doc": {
2026-06-15T09:40:48.8789975Z           "complete": false,
2026-06-15T09:40:48.8790056Z           "evidence": []
2026-06-15T09:40:48.8790132Z         },
2026-06-15T09:40:48.8790214Z         "impl": {
2026-06-15T09:40:48.8790299Z           "complete": true,
2026-06-15T09:40:48.8790384Z           "evidence": [
2026-06-15T09:40:48.8790461Z             {
2026-06-15T09:40:48.8790581Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8790661Z               "line": 616
2026-06-15T09:40:48.8790752Z             },
2026-06-15T09:40:48.8790829Z             {
2026-06-15T09:40:48.8790943Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8791019Z               "line": 693
2026-06-15T09:40:48.8791100Z             },
2026-06-15T09:40:48.8791182Z             {
2026-06-15T09:40:48.8791300Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8791381Z               "line": 13
2026-06-15T09:40:48.8791464Z             },
2026-06-15T09:40:48.8791544Z             {
2026-06-15T09:40:48.8791649Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8791725Z               "line": 67
2026-06-15T09:40:48.8791802Z             },
2026-06-15T09:40:48.8791882Z             {
2026-06-15T09:40:48.8791992Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8792069Z               "line": 18
2026-06-15T09:40:48.8792145Z             },
2026-06-15T09:40:48.8792225Z             {
2026-06-15T09:40:48.8792324Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8792406Z               "line": 444
2026-06-15T09:40:48.8792486Z             }
2026-06-15T09:40:48.8792561Z           ]
2026-06-15T09:40:48.8792641Z         },
2026-06-15T09:40:48.8792723Z         "int": {
2026-06-15T09:40:48.8792819Z           "complete": false,
2026-06-15T09:40:48.8793004Z           "evidence": []
2026-06-15T09:40:48.8793081Z         },
2026-06-15T09:40:48.8793251Z         "unit": {
2026-06-15T09:40:48.8793348Z           "complete": true,
2026-06-15T09:40:48.8793429Z           "evidence": [
2026-06-15T09:40:48.8793510Z             {
2026-06-15T09:40:48.8793624Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8793710Z               "line": 900
2026-06-15T09:40:48.8793791Z             },
2026-06-15T09:40:48.8793872Z             {
2026-06-15T09:40:48.8793987Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8794073Z               "line": 1233
2026-06-15T09:40:48.8794158Z             },
2026-06-15T09:40:48.8794239Z             {
2026-06-15T09:40:48.8794340Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8794425Z               "line": 1244
2026-06-15T09:40:48.8794502Z             },
2026-06-15T09:40:48.8794583Z             {
2026-06-15T09:40:48.8794693Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8794792Z               "line": 1260
2026-06-15T09:40:48.8794878Z             },
2026-06-15T09:40:48.8794956Z             {
2026-06-15T09:40:48.8795064Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8795144Z               "line": 1276
2026-06-15T09:40:48.8795220Z             },
2026-06-15T09:40:48.8795297Z             {
2026-06-15T09:40:48.8795403Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8795482Z               "line": 1298
2026-06-15T09:40:48.8795558Z             },
2026-06-15T09:40:48.8795646Z             {
2026-06-15T09:40:48.8795750Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8795845Z               "line": 1603
2026-06-15T09:40:48.8795917Z             },
2026-06-15T09:40:48.8796003Z             {
2026-06-15T09:40:48.8796107Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8796183Z               "line": 130
2026-06-15T09:40:48.8796280Z             },
2026-06-15T09:40:48.8796350Z             {
2026-06-15T09:40:48.8796464Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8796552Z               "line": 167
2026-06-15T09:40:48.8796827Z             },
2026-06-15T09:40:48.8796994Z             {
2026-06-15T09:40:48.8797128Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8797220Z               "line": 175
2026-06-15T09:40:48.8797300Z             },
2026-06-15T09:40:48.8797379Z             {
2026-06-15T09:40:48.8797499Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T09:40:48.8797580Z               "line": 183
2026-06-15T09:40:48.8797659Z             },
2026-06-15T09:40:48.8800954Z             {
2026-06-15T09:40:48.8801103Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8801193Z               "line": 896
2026-06-15T09:40:48.8801269Z             }
2026-06-15T09:40:48.8801341Z           ]
2026-06-15T09:40:48.8801418Z         }
2026-06-15T09:40:48.8801536Z       }
2026-06-15T09:40:48.8801617Z     },
2026-06-15T09:40:48.8801695Z     {
2026-06-15T09:40:48.8801794Z       "id": "REQ-INST-11",
2026-06-15T09:40:48.8802019Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T09:40:48.8802113Z       "requiredStages": [
2026-06-15T09:40:48.8802194Z         "impl",
2026-06-15T09:40:48.8802271Z         "unit"
2026-06-15T09:40:48.8802348Z       ],
2026-06-15T09:40:48.8802428Z       "stages": {
2026-06-15T09:40:48.8802504Z         "doc": {
2026-06-15T09:40:48.8802596Z           "complete": false,
2026-06-15T09:40:48.8802682Z           "evidence": []
2026-06-15T09:40:48.8802762Z         },
2026-06-15T09:40:48.8802846Z         "impl": {
2026-06-15T09:40:48.8802932Z           "complete": true,
2026-06-15T09:40:48.8803008Z           "evidence": [
2026-06-15T09:40:48.8803083Z             {
2026-06-15T09:40:48.8803216Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8803497Z               "line": 482
2026-06-15T09:40:48.8803578Z             },
2026-06-15T09:40:48.8803651Z             {
2026-06-15T09:40:48.8803884Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8803965Z               "line": 297
2026-06-15T09:40:48.8804046Z             },
2026-06-15T09:40:48.8804122Z             {
2026-06-15T09:40:48.8804243Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:40:48.8804308Z               "line": 59
2026-06-15T09:40:48.8804389Z             },
2026-06-15T09:40:48.8804456Z             {
2026-06-15T09:40:48.8804562Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8804642Z               "line": 4736
2026-06-15T09:40:48.8804723Z             },
2026-06-15T09:40:48.8804799Z             {
2026-06-15T09:40:48.8804901Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8804976Z               "line": 6051
2026-06-15T09:40:48.8805057Z             }
2026-06-15T09:40:48.8805128Z           ]
2026-06-15T09:40:48.8805211Z         },
2026-06-15T09:40:48.8805281Z         "int": {
2026-06-15T09:40:48.8805366Z           "complete": false,
2026-06-15T09:40:48.8805458Z           "evidence": []
2026-06-15T09:40:48.8805540Z         },
2026-06-15T09:40:48.8805620Z         "unit": {
2026-06-15T09:40:48.8805704Z           "complete": true,
2026-06-15T09:40:48.8805790Z           "evidence": [
2026-06-15T09:40:48.8805881Z             {
2026-06-15T09:40:48.8806000Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8806076Z               "line": 1403
2026-06-15T09:40:48.8806158Z             },
2026-06-15T09:40:48.8806234Z             {
2026-06-15T09:40:48.8806353Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8806429Z               "line": 1436
2026-06-15T09:40:48.8806516Z             },
2026-06-15T09:40:48.8806596Z             {
2026-06-15T09:40:48.8806719Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8806806Z               "line": 527
2026-06-15T09:40:48.8806883Z             },
2026-06-15T09:40:48.8806968Z             {
2026-06-15T09:40:48.8807087Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:40:48.8807178Z               "line": 160
2026-06-15T09:40:48.8807258Z             },
2026-06-15T09:40:48.8807339Z             {
2026-06-15T09:40:48.8807441Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:40:48.8807527Z               "line": 190
2026-06-15T09:40:48.8807611Z             },
2026-06-15T09:40:48.8807688Z             {
2026-06-15T09:40:48.8807808Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T09:40:48.8807902Z               "line": 225
2026-06-15T09:40:48.8807978Z             },
2026-06-15T09:40:48.8808059Z             {
2026-06-15T09:40:48.8808154Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8808242Z               "line": 6440
2026-06-15T09:40:48.8808323Z             }
2026-06-15T09:40:48.8808409Z           ]
2026-06-15T09:40:48.8808481Z         }
2026-06-15T09:40:48.8808562Z       }
2026-06-15T09:40:48.8808652Z     },
2026-06-15T09:40:48.8808719Z     {
2026-06-15T09:40:48.8808810Z       "id": "REQ-INST-12",
2026-06-15T09:40:48.8809173Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T09:40:48.8809267Z       "requiredStages": [
2026-06-15T09:40:48.8809340Z         "impl",
2026-06-15T09:40:48.8809421Z         "unit"
2026-06-15T09:40:48.8809497Z       ],
2026-06-15T09:40:48.8809572Z       "stages": {
2026-06-15T09:40:48.8809649Z         "doc": {
2026-06-15T09:40:48.8809731Z           "complete": false,
2026-06-15T09:40:48.8809816Z           "evidence": []
2026-06-15T09:40:48.8809897Z         },
2026-06-15T09:40:48.8809979Z         "impl": {
2026-06-15T09:40:48.8810060Z           "complete": true,
2026-06-15T09:40:48.8810139Z           "evidence": [
2026-06-15T09:40:48.8810211Z             {
2026-06-15T09:40:48.8810332Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8810526Z               "line": 534
2026-06-15T09:40:48.8810609Z             },
2026-06-15T09:40:48.8810778Z             {
2026-06-15T09:40:48.8810901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8810978Z               "line": 627
2026-06-15T09:40:48.8811059Z             },
2026-06-15T09:40:48.8811138Z             {
2026-06-15T09:40:48.8811233Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8811315Z               "line": 707
2026-06-15T09:40:48.8811392Z             },
2026-06-15T09:40:48.8811476Z             {
2026-06-15T09:40:48.8811587Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8811668Z               "line": 96
2026-06-15T09:40:48.8811753Z             },
2026-06-15T09:40:48.8811834Z             {
2026-06-15T09:40:48.8811935Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8812011Z               "line": 269
2026-06-15T09:40:48.8812101Z             },
2026-06-15T09:40:48.8812172Z             {
2026-06-15T09:40:48.8812284Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8812368Z               "line": 135
2026-06-15T09:40:48.8812444Z             }
2026-06-15T09:40:48.8812526Z           ]
2026-06-15T09:40:48.8812608Z         },
2026-06-15T09:40:48.8812692Z         "int": {
2026-06-15T09:40:48.8812778Z           "complete": false,
2026-06-15T09:40:48.8812860Z           "evidence": []
2026-06-15T09:40:48.8812937Z         },
2026-06-15T09:40:48.8813021Z         "unit": {
2026-06-15T09:40:48.8813103Z           "complete": true,
2026-06-15T09:40:48.8813180Z           "evidence": [
2026-06-15T09:40:48.8813256Z             {
2026-06-15T09:40:48.8813360Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8813439Z               "line": 1478
2026-06-15T09:40:48.8813516Z             },
2026-06-15T09:40:48.8813592Z             {
2026-06-15T09:40:48.8813710Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8813800Z               "line": 1501
2026-06-15T09:40:48.8813877Z             },
2026-06-15T09:40:48.8813963Z             {
2026-06-15T09:40:48.8814072Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8814158Z               "line": 1538
2026-06-15T09:40:48.8814225Z             },
2026-06-15T09:40:48.8814311Z             {
2026-06-15T09:40:48.8814415Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.8814507Z               "line": 457
2026-06-15T09:40:48.8814587Z             },
2026-06-15T09:40:48.8814663Z             {
2026-06-15T09:40:48.8814783Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8814864Z               "line": 172
2026-06-15T09:40:48.8814945Z             },
2026-06-15T09:40:48.8815026Z             {
2026-06-15T09:40:48.8815141Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8815221Z               "line": 193
2026-06-15T09:40:48.8815312Z             },
2026-06-15T09:40:48.8815388Z             {
2026-06-15T09:40:48.8815498Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8815578Z               "line": 219
2026-06-15T09:40:48.8815655Z             }
2026-06-15T09:40:48.8815732Z           ]
2026-06-15T09:40:48.8815813Z         }
2026-06-15T09:40:48.8815893Z       }
2026-06-15T09:40:48.8815975Z     },
2026-06-15T09:40:48.8816052Z     {
2026-06-15T09:40:48.8816142Z       "id": "REQ-INST-13",
2026-06-15T09:40:48.8816311Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T09:40:48.8816408Z       "requiredStages": [
2026-06-15T09:40:48.8816480Z         "impl",
2026-06-15T09:40:48.8816555Z         "unit"
2026-06-15T09:40:48.8816636Z       ],
2026-06-15T09:40:48.8816708Z       "stages": {
2026-06-15T09:40:48.8816795Z         "doc": {
2026-06-15T09:40:48.8816880Z           "complete": false,
2026-06-15T09:40:48.8816969Z           "evidence": []
2026-06-15T09:40:48.8817047Z         },
2026-06-15T09:40:48.8817213Z         "impl": {
2026-06-15T09:40:48.8817299Z           "complete": true,
2026-06-15T09:40:48.8817452Z           "evidence": [
2026-06-15T09:40:48.8817528Z             {
2026-06-15T09:40:48.8817638Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8817720Z               "line": 100
2026-06-15T09:40:48.8817800Z             },
2026-06-15T09:40:48.8817876Z             {
2026-06-15T09:40:48.8817992Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8818072Z               "line": 158
2026-06-15T09:40:48.8818152Z             }
2026-06-15T09:40:48.8818224Z           ]
2026-06-15T09:40:48.8818301Z         },
2026-06-15T09:40:48.8818382Z         "int": {
2026-06-15T09:40:48.8818476Z           "complete": false,
2026-06-15T09:40:48.8818571Z           "evidence": []
2026-06-15T09:40:48.8818648Z         },
2026-06-15T09:40:48.8818728Z         "unit": {
2026-06-15T09:40:48.8818812Z           "complete": true,
2026-06-15T09:40:48.8818907Z           "evidence": [
2026-06-15T09:40:48.8819061Z             {
2026-06-15T09:40:48.8819188Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8819275Z               "line": 248
2026-06-15T09:40:48.8819356Z             },
2026-06-15T09:40:48.8819432Z             {
2026-06-15T09:40:48.8819551Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T09:40:48.8819628Z               "line": 266
2026-06-15T09:40:48.8819708Z             }
2026-06-15T09:40:48.8819789Z           ]
2026-06-15T09:40:48.8819861Z         }
2026-06-15T09:40:48.8819933Z       }
2026-06-15T09:40:48.8820009Z     },
2026-06-15T09:40:48.8820085Z     {
2026-06-15T09:40:48.8820166Z       "id": "REQ-INST-14",
2026-06-15T09:40:48.8820529Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T09:40:48.8820620Z       "requiredStages": [
2026-06-15T09:40:48.8820709Z         "doc",
2026-06-15T09:40:48.8820790Z         "impl",
2026-06-15T09:40:48.8820878Z         "unit"
2026-06-15T09:40:48.8820959Z       ],
2026-06-15T09:40:48.8821043Z       "stages": {
2026-06-15T09:40:48.8821120Z         "doc": {
2026-06-15T09:40:48.8821216Z           "complete": true,
2026-06-15T09:40:48.8821302Z           "evidence": [
2026-06-15T09:40:48.8821376Z             {
2026-06-15T09:40:48.8821466Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8821548Z               "line": 530
2026-06-15T09:40:48.8821628Z             },
2026-06-15T09:40:48.8821698Z             {
2026-06-15T09:40:48.8821798Z               "path": "docs/STORAGE.md",
2026-06-15T09:40:48.8821890Z               "line": 49
2026-06-15T09:40:48.8821966Z             }
2026-06-15T09:40:48.8822041Z           ]
2026-06-15T09:40:48.8822122Z         },
2026-06-15T09:40:48.8822210Z         "impl": {
2026-06-15T09:40:48.8822286Z           "complete": true,
2026-06-15T09:40:48.8822365Z           "evidence": [
2026-06-15T09:40:48.8822452Z             {
2026-06-15T09:40:48.8822585Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8822666Z               "line": 404
2026-06-15T09:40:48.8822742Z             },
2026-06-15T09:40:48.8822824Z             {
2026-06-15T09:40:48.8822943Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8823038Z               "line": 346
2026-06-15T09:40:48.8823120Z             },
2026-06-15T09:40:48.8823196Z             {
2026-06-15T09:40:48.8823310Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8823386Z               "line": 221
2026-06-15T09:40:48.8823464Z             },
2026-06-15T09:40:48.8823544Z             {
2026-06-15T09:40:48.8823644Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8823721Z               "line": 1372
2026-06-15T09:40:48.8823793Z             }
2026-06-15T09:40:48.8823863Z           ]
2026-06-15T09:40:48.8823938Z         },
2026-06-15T09:40:48.8824019Z         "int": {
2026-06-15T09:40:48.8824110Z           "complete": false,
2026-06-15T09:40:48.8824322Z           "evidence": []
2026-06-15T09:40:48.8824398Z         },
2026-06-15T09:40:48.8824565Z         "unit": {
2026-06-15T09:40:48.8824655Z           "complete": true,
2026-06-15T09:40:48.8824743Z           "evidence": [
2026-06-15T09:40:48.8824823Z             {
2026-06-15T09:40:48.8824942Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8825019Z               "line": 1111
2026-06-15T09:40:48.8825100Z             },
2026-06-15T09:40:48.8825176Z             {
2026-06-15T09:40:48.8825294Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8825372Z               "line": 912
2026-06-15T09:40:48.8825448Z             },
2026-06-15T09:40:48.8825524Z             {
2026-06-15T09:40:48.8825633Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8825711Z               "line": 1173
2026-06-15T09:40:48.8825791Z             },
2026-06-15T09:40:48.8825867Z             {
2026-06-15T09:40:48.8825968Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8826059Z               "line": 490
2026-06-15T09:40:48.8826143Z             },
2026-06-15T09:40:48.8826215Z             {
2026-06-15T09:40:48.8826321Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8826406Z               "line": 6516
2026-06-15T09:40:48.8826487Z             }
2026-06-15T09:40:48.8826564Z           ]
2026-06-15T09:40:48.8826646Z         }
2026-06-15T09:40:48.8826726Z       }
2026-06-15T09:40:48.8826801Z     },
2026-06-15T09:40:48.8826886Z     {
2026-06-15T09:40:48.8826968Z       "id": "REQ-INST-15",
2026-06-15T09:40:48.8827655Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T09:40:48.8827750Z       "requiredStages": [
2026-06-15T09:40:48.8827840Z         "doc",
2026-06-15T09:40:48.8827922Z         "impl",
2026-06-15T09:40:48.8828003Z         "unit"
2026-06-15T09:40:48.8828088Z       ],
2026-06-15T09:40:48.8828164Z       "stages": {
2026-06-15T09:40:48.8828247Z         "doc": {
2026-06-15T09:40:48.8828327Z           "complete": true,
2026-06-15T09:40:48.8828408Z           "evidence": [
2026-06-15T09:40:48.8828488Z             {
2026-06-15T09:40:48.8828651Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T09:40:48.8828741Z               "line": 3
2026-06-15T09:40:48.8828818Z             }
2026-06-15T09:40:48.8828896Z           ]
2026-06-15T09:40:48.8829065Z         },
2026-06-15T09:40:48.8829141Z         "impl": {
2026-06-15T09:40:48.8829227Z           "complete": true,
2026-06-15T09:40:48.8829311Z           "evidence": [
2026-06-15T09:40:48.8829391Z             {
2026-06-15T09:40:48.8829515Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8829597Z               "line": 353
2026-06-15T09:40:48.8829678Z             },
2026-06-15T09:40:48.8829748Z             {
2026-06-15T09:40:48.8829854Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.8829949Z               "line": 60
2026-06-15T09:40:48.8830025Z             },
2026-06-15T09:40:48.8830101Z             {
2026-06-15T09:40:48.8830231Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8830312Z               "line": 368
2026-06-15T09:40:48.8830397Z             },
2026-06-15T09:40:48.8830484Z             {
2026-06-15T09:40:48.8830598Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8830688Z               "line": 417
2026-06-15T09:40:48.8830765Z             },
2026-06-15T09:40:48.8830841Z             {
2026-06-15T09:40:48.8830946Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8831026Z               "line": 19
2026-06-15T09:40:48.8831104Z             },
2026-06-15T09:40:48.8831180Z             {
2026-06-15T09:40:48.8831399Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8831490Z               "line": 70
2026-06-15T09:40:48.8831661Z             },
2026-06-15T09:40:48.8831733Z             {
2026-06-15T09:40:48.8831834Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8831913Z               "line": 96
2026-06-15T09:40:48.8831989Z             },
2026-06-15T09:40:48.8832070Z             {
2026-06-15T09:40:48.8832174Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8832263Z               "line": 121
2026-06-15T09:40:48.8832349Z             },
2026-06-15T09:40:48.8832425Z             {
2026-06-15T09:40:48.8832531Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8832606Z               "line": 172
2026-06-15T09:40:48.8832687Z             },
2026-06-15T09:40:48.8832760Z             {
2026-06-15T09:40:48.8832874Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8832954Z               "line": 146
2026-06-15T09:40:48.8833036Z             },
2026-06-15T09:40:48.8833117Z             {
2026-06-15T09:40:48.8833208Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8833307Z               "line": 1264
2026-06-15T09:40:48.8833389Z             }
2026-06-15T09:40:48.8833470Z           ]
2026-06-15T09:40:48.8833546Z         },
2026-06-15T09:40:48.8833627Z         "int": {
2026-06-15T09:40:48.8833714Z           "complete": false,
2026-06-15T09:40:48.8833794Z           "evidence": []
2026-06-15T09:40:48.8833870Z         },
2026-06-15T09:40:48.8833947Z         "unit": {
2026-06-15T09:40:48.8834038Z           "complete": true,
2026-06-15T09:40:48.8834132Z           "evidence": [
2026-06-15T09:40:48.8834199Z             {
2026-06-15T09:40:48.8834324Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8834401Z               "line": 577
2026-06-15T09:40:48.8834484Z             },
2026-06-15T09:40:48.8834560Z             {
2026-06-15T09:40:48.8834680Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.8834778Z               "line": 638
2026-06-15T09:40:48.8834853Z             },
2026-06-15T09:40:48.8834940Z             {
2026-06-15T09:40:48.8835040Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8835130Z               "line": 213
2026-06-15T09:40:48.8835211Z             },
2026-06-15T09:40:48.8835288Z             {
2026-06-15T09:40:48.8835383Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8835468Z               "line": 249
2026-06-15T09:40:48.8835554Z             },
2026-06-15T09:40:48.8835632Z             {
2026-06-15T09:40:48.8835737Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8835816Z               "line": 262
2026-06-15T09:40:48.8835894Z             },
2026-06-15T09:40:48.8835980Z             {
2026-06-15T09:40:48.8836080Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T09:40:48.8836170Z               "line": 338
2026-06-15T09:40:48.8836247Z             },
2026-06-15T09:40:48.8836337Z             {
2026-06-15T09:40:48.8836436Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.8836528Z               "line": 543
2026-06-15T09:40:48.8836610Z             },
2026-06-15T09:40:48.8836689Z             {
2026-06-15T09:40:48.8836790Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8836867Z               "line": 6453
2026-06-15T09:40:48.8836948Z             },
2026-06-15T09:40:48.8837023Z             {
2026-06-15T09:40:48.8837124Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8837206Z               "line": 8097
2026-06-15T09:40:48.8837277Z             }
2026-06-15T09:40:48.8837351Z           ]
2026-06-15T09:40:48.8837432Z         }
2026-06-15T09:40:48.8837508Z       }
2026-06-15T09:40:48.8837586Z     },
2026-06-15T09:40:48.8837666Z     {
2026-06-15T09:40:48.8837761Z       "id": "REQ-INST-2",
2026-06-15T09:40:48.8837872Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T09:40:48.8837972Z       "requiredStages": [
2026-06-15T09:40:48.8838129Z         "impl",
2026-06-15T09:40:48.8838210Z         "unit"
2026-06-15T09:40:48.8838352Z       ],
2026-06-15T09:40:48.8838429Z       "stages": {
2026-06-15T09:40:48.8838511Z         "doc": {
2026-06-15T09:40:48.8838591Z           "complete": false,
2026-06-15T09:40:48.8838676Z           "evidence": []
2026-06-15T09:40:48.8838753Z         },
2026-06-15T09:40:48.8838826Z         "impl": {
2026-06-15T09:40:48.8838920Z           "complete": true,
2026-06-15T09:40:48.8839097Z           "evidence": [
2026-06-15T09:40:48.8839183Z             {
2026-06-15T09:40:48.8839306Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8839387Z               "line": 88
2026-06-15T09:40:48.8839470Z             },
2026-06-15T09:40:48.8839554Z             {
2026-06-15T09:40:48.8839672Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8839753Z               "line": 28
2026-06-15T09:40:48.8839834Z             },
2026-06-15T09:40:48.8839923Z             {
2026-06-15T09:40:48.8840027Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8840114Z               "line": 74
2026-06-15T09:40:48.8840196Z             },
2026-06-15T09:40:48.8840276Z             {
2026-06-15T09:40:48.8840380Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8840462Z               "line": 96
2026-06-15T09:40:48.8840538Z             },
2026-06-15T09:40:48.8840619Z             {
2026-06-15T09:40:48.8840715Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.8840796Z               "line": 86
2026-06-15T09:40:48.8840876Z             },
2026-06-15T09:40:48.8840957Z             {
2026-06-15T09:40:48.8841068Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T09:40:48.8841144Z               "line": 118
2026-06-15T09:40:48.8841220Z             }
2026-06-15T09:40:48.8841296Z           ]
2026-06-15T09:40:48.8841383Z         },
2026-06-15T09:40:48.8841453Z         "int": {
2026-06-15T09:40:48.8841549Z           "complete": false,
2026-06-15T09:40:48.8841625Z           "evidence": []
2026-06-15T09:40:48.8841707Z         },
2026-06-15T09:40:48.8841792Z         "unit": {
2026-06-15T09:40:48.8841873Z           "complete": true,
2026-06-15T09:40:48.8841960Z           "evidence": [
2026-06-15T09:40:48.8842031Z             {
2026-06-15T09:40:48.8842130Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T09:40:48.8842217Z               "line": 250
2026-06-15T09:40:48.8842293Z             },
2026-06-15T09:40:48.8842365Z             {
2026-06-15T09:40:48.8842464Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.8842558Z               "line": 280
2026-06-15T09:40:48.8842668Z             }
2026-06-15T09:40:48.8842753Z           ]
2026-06-15T09:40:48.8842837Z         }
2026-06-15T09:40:48.8842933Z       }
2026-06-15T09:40:48.8843005Z     },
2026-06-15T09:40:48.8843077Z     {
2026-06-15T09:40:48.8843166Z       "id": "REQ-INST-3",
2026-06-15T09:40:48.8843320Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T09:40:48.8843415Z       "requiredStages": [
2026-06-15T09:40:48.8843509Z         "doc",
2026-06-15T09:40:48.8843587Z         "impl",
2026-06-15T09:40:48.8843668Z         "unit"
2026-06-15T09:40:48.8843744Z       ],
2026-06-15T09:40:48.8843824Z       "stages": {
2026-06-15T09:40:48.8843906Z         "doc": {
2026-06-15T09:40:48.8843992Z           "complete": true,
2026-06-15T09:40:48.8844083Z           "evidence": [
2026-06-15T09:40:48.8844163Z             {
2026-06-15T09:40:48.8844274Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T09:40:48.8844359Z               "line": 3
2026-06-15T09:40:48.8844435Z             }
2026-06-15T09:40:48.8844516Z           ]
2026-06-15T09:40:48.8844593Z         },
2026-06-15T09:40:48.8844674Z         "impl": {
2026-06-15T09:40:48.8844750Z           "complete": true,
2026-06-15T09:40:48.8844846Z           "evidence": [
2026-06-15T09:40:48.8844923Z             {
2026-06-15T09:40:48.8845040Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.8845230Z               "line": 59
2026-06-15T09:40:48.8845385Z             },
2026-06-15T09:40:48.8845466Z             {
2026-06-15T09:40:48.8845586Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.8845667Z               "line": 480
2026-06-15T09:40:48.8845747Z             },
2026-06-15T09:40:48.8845829Z             {
2026-06-15T09:40:48.8845948Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8846024Z               "line": 204
2026-06-15T09:40:48.8846105Z             },
2026-06-15T09:40:48.8846182Z             {
2026-06-15T09:40:48.8846301Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8846391Z               "line": 334
2026-06-15T09:40:48.8846473Z             },
2026-06-15T09:40:48.8846559Z             {
2026-06-15T09:40:48.8846673Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8846758Z               "line": 368
2026-06-15T09:40:48.8846846Z             },
2026-06-15T09:40:48.8846930Z             {
2026-06-15T09:40:48.8847050Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T09:40:48.8847136Z               "line": 74
2026-06-15T09:40:48.8847217Z             },
2026-06-15T09:40:48.8847298Z             {
2026-06-15T09:40:48.8847428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8847504Z               "line": 234
2026-06-15T09:40:48.8847587Z             },
2026-06-15T09:40:48.8847669Z             {
2026-06-15T09:40:48.8847790Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8847879Z               "line": 390
2026-06-15T09:40:48.8847959Z             },
2026-06-15T09:40:48.8848035Z             {
2026-06-15T09:40:48.8848155Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8848240Z               "line": 45
2026-06-15T09:40:48.8848321Z             },
2026-06-15T09:40:48.8848398Z             {
2026-06-15T09:40:48.8848523Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8848607Z               "line": 114
2026-06-15T09:40:48.8848699Z             },
2026-06-15T09:40:48.8848775Z             {
2026-06-15T09:40:48.8848889Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8849037Z               "line": 152
2026-06-15T09:40:48.8849113Z             },
2026-06-15T09:40:48.8849190Z             {
2026-06-15T09:40:48.8849299Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8849386Z               "line": 168
2026-06-15T09:40:48.8849466Z             },
2026-06-15T09:40:48.8849547Z             {
2026-06-15T09:40:48.8849658Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8849739Z               "line": 178
2026-06-15T09:40:48.8849813Z             },
2026-06-15T09:40:48.8849890Z             {
2026-06-15T09:40:48.8850001Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8850086Z               "line": 210
2026-06-15T09:40:48.8850162Z             },
2026-06-15T09:40:48.8850237Z             {
2026-06-15T09:40:48.8850347Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8850436Z               "line": 287
2026-06-15T09:40:48.8850517Z             },
2026-06-15T09:40:48.8850597Z             {
2026-06-15T09:40:48.8850708Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8850788Z               "line": 311
2026-06-15T09:40:48.8850864Z             },
2026-06-15T09:40:48.8850941Z             {
2026-06-15T09:40:48.8851042Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8851122Z               "line": 389
2026-06-15T09:40:48.8851207Z             },
2026-06-15T09:40:48.8851285Z             {
2026-06-15T09:40:48.8851399Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8851479Z               "line": 438
2026-06-15T09:40:48.8851551Z             },
2026-06-15T09:40:48.8851633Z             {
2026-06-15T09:40:48.8851870Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T09:40:48.8852037Z               "line": 37
2026-06-15T09:40:48.8852114Z             },
2026-06-15T09:40:48.8852185Z             {
2026-06-15T09:40:48.8852300Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8852380Z               "line": 62
2026-06-15T09:40:48.8852462Z             },
2026-06-15T09:40:48.8852539Z             {
2026-06-15T09:40:48.8852653Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8852733Z               "line": 200
2026-06-15T09:40:48.8852815Z             },
2026-06-15T09:40:48.8852902Z             {
2026-06-15T09:40:48.8852991Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8853085Z               "line": 1597
2026-06-15T09:40:48.8853162Z             }
2026-06-15T09:40:48.8853243Z           ]
2026-06-15T09:40:48.8853317Z         },
2026-06-15T09:40:48.8853389Z         "int": {
2026-06-15T09:40:48.8853484Z           "complete": false,
2026-06-15T09:40:48.8853570Z           "evidence": []
2026-06-15T09:40:48.8853646Z         },
2026-06-15T09:40:48.8853741Z         "unit": {
2026-06-15T09:40:48.8853837Z           "complete": true,
2026-06-15T09:40:48.8853923Z           "evidence": [
2026-06-15T09:40:48.8853999Z             {
2026-06-15T09:40:48.8854118Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.8854199Z               "line": 360
2026-06-15T09:40:48.8854276Z             },
2026-06-15T09:40:48.8854356Z             {
2026-06-15T09:40:48.8854476Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8854557Z               "line": 787
2026-06-15T09:40:48.8854633Z             },
2026-06-15T09:40:48.8854713Z             {
2026-06-15T09:40:48.8854825Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8854914Z               "line": 844
2026-06-15T09:40:48.8854995Z             },
2026-06-15T09:40:48.8855072Z             {
2026-06-15T09:40:48.8855201Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8855285Z               "line": 889
2026-06-15T09:40:48.8855372Z             },
2026-06-15T09:40:48.8855450Z             {
2026-06-15T09:40:48.8855558Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.8855638Z               "line": 1014
2026-06-15T09:40:48.8855718Z             },
2026-06-15T09:40:48.8855795Z             {
2026-06-15T09:40:48.8855917Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8856007Z               "line": 1212
2026-06-15T09:40:48.8856084Z             },
2026-06-15T09:40:48.8856170Z             {
2026-06-15T09:40:48.8856293Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8856384Z               "line": 1353
2026-06-15T09:40:48.8856466Z             },
2026-06-15T09:40:48.8856547Z             {
2026-06-15T09:40:48.8856661Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8856747Z               "line": 449
2026-06-15T09:40:48.8856832Z             },
2026-06-15T09:40:48.8856904Z             {
2026-06-15T09:40:48.8857019Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8857114Z               "line": 485
2026-06-15T09:40:48.8857185Z             },
2026-06-15T09:40:48.8857275Z             {
2026-06-15T09:40:48.8857377Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8857467Z               "line": 540
2026-06-15T09:40:48.8857543Z             },
2026-06-15T09:40:48.8857619Z             {
2026-06-15T09:40:48.8857730Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8857814Z               "line": 697
2026-06-15T09:40:48.8857891Z             },
2026-06-15T09:40:48.8857968Z             {
2026-06-15T09:40:48.8858087Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8858172Z               "line": 931
2026-06-15T09:40:48.8858239Z             },
2026-06-15T09:40:48.8858322Z             {
2026-06-15T09:40:48.8858510Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8858677Z               "line": 945
2026-06-15T09:40:48.8858754Z             },
2026-06-15T09:40:48.8858833Z             {
2026-06-15T09:40:48.8859039Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8859121Z               "line": 1214
2026-06-15T09:40:48.8859196Z             },
2026-06-15T09:40:48.8859273Z             {
2026-06-15T09:40:48.8859387Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.8859473Z               "line": 440
2026-06-15T09:40:48.8859554Z             },
2026-06-15T09:40:48.8859636Z             {
2026-06-15T09:40:48.8859735Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8859825Z               "line": 6477
2026-06-15T09:40:48.8859903Z             }
2026-06-15T09:40:48.8859984Z           ]
2026-06-15T09:40:48.8860054Z         }
2026-06-15T09:40:48.8860131Z       }
2026-06-15T09:40:48.8860218Z     },
2026-06-15T09:40:48.8860304Z     {
2026-06-15T09:40:48.8860393Z       "id": "REQ-INST-4",
2026-06-15T09:40:48.8860566Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T09:40:48.8860670Z       "requiredStages": [
2026-06-15T09:40:48.8860745Z         "impl",
2026-06-15T09:40:48.8860825Z         "unit"
2026-06-15T09:40:48.8863697Z       ],
2026-06-15T09:40:48.8863798Z       "stages": {
2026-06-15T09:40:48.8863877Z         "doc": {
2026-06-15T09:40:48.8863977Z           "complete": false,
2026-06-15T09:40:48.8864067Z           "evidence": []
2026-06-15T09:40:48.8864145Z         },
2026-06-15T09:40:48.8864220Z         "impl": {
2026-06-15T09:40:48.8864310Z           "complete": true,
2026-06-15T09:40:48.8864392Z           "evidence": [
2026-06-15T09:40:48.8864474Z             {
2026-06-15T09:40:48.8864606Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8864688Z               "line": 335
2026-06-15T09:40:48.8864769Z             },
2026-06-15T09:40:48.8864864Z             {
2026-06-15T09:40:48.8864988Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8865075Z               "line": 202
2026-06-15T09:40:48.8865155Z             },
2026-06-15T09:40:48.8865231Z             {
2026-06-15T09:40:48.8865346Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8865422Z               "line": 234
2026-06-15T09:40:48.8865503Z             },
2026-06-15T09:40:48.8865584Z             {
2026-06-15T09:40:48.8865690Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8865775Z               "line": 274
2026-06-15T09:40:48.8865851Z             }
2026-06-15T09:40:48.8865927Z           ]
2026-06-15T09:40:48.8866005Z         },
2026-06-15T09:40:48.8866090Z         "int": {
2026-06-15T09:40:48.8866184Z           "complete": false,
2026-06-15T09:40:48.8866269Z           "evidence": []
2026-06-15T09:40:48.8866355Z         },
2026-06-15T09:40:48.8866440Z         "unit": {
2026-06-15T09:40:48.8866534Z           "complete": true,
2026-06-15T09:40:48.8866620Z           "evidence": [
2026-06-15T09:40:48.8866697Z             {
2026-06-15T09:40:48.8866816Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.8866896Z               "line": 839
2026-06-15T09:40:48.8866988Z             },
2026-06-15T09:40:48.8867069Z             {
2026-06-15T09:40:48.8867182Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8867259Z               "line": 561
2026-06-15T09:40:48.8867340Z             },
2026-06-15T09:40:48.8867426Z             {
2026-06-15T09:40:48.8867525Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8867608Z               "line": 668
2026-06-15T09:40:48.8867684Z             },
2026-06-15T09:40:48.8867765Z             {
2026-06-15T09:40:48.8867865Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8867942Z               "line": 750
2026-06-15T09:40:48.8868027Z             }
2026-06-15T09:40:48.8868233Z           ]
2026-06-15T09:40:48.8868318Z         }
2026-06-15T09:40:48.8868398Z       }
2026-06-15T09:40:48.8868562Z     },
2026-06-15T09:40:48.8868642Z     {
2026-06-15T09:40:48.8868732Z       "id": "REQ-INST-5",
2026-06-15T09:40:48.8868910Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T09:40:48.8869103Z       "requiredStages": [
2026-06-15T09:40:48.8869184Z         "impl",
2026-06-15T09:40:48.8869262Z         "unit",
2026-06-15T09:40:48.8869338Z         "int"
2026-06-15T09:40:48.8869417Z       ],
2026-06-15T09:40:48.8869499Z       "stages": {
2026-06-15T09:40:48.8869576Z         "doc": {
2026-06-15T09:40:48.8869667Z           "complete": false,
2026-06-15T09:40:48.8869742Z           "evidence": []
2026-06-15T09:40:48.8869819Z         },
2026-06-15T09:40:48.8869896Z         "impl": {
2026-06-15T09:40:48.8869982Z           "complete": true,
2026-06-15T09:40:48.8870071Z           "evidence": [
2026-06-15T09:40:48.8870148Z             {
2026-06-15T09:40:48.8870267Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T09:40:48.8870348Z               "line": 85
2026-06-15T09:40:48.8870434Z             },
2026-06-15T09:40:48.8870511Z             {
2026-06-15T09:40:48.8870614Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8870686Z               "line": 68
2026-06-15T09:40:48.8870763Z             },
2026-06-15T09:40:48.8870845Z             {
2026-06-15T09:40:48.8870943Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8871034Z               "line": 99
2026-06-15T09:40:48.8871112Z             },
2026-06-15T09:40:48.8871188Z             {
2026-06-15T09:40:48.8871296Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8871376Z               "line": 183
2026-06-15T09:40:48.8871458Z             },
2026-06-15T09:40:48.8871548Z             {
2026-06-15T09:40:48.8871703Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8871794Z               "line": 314
2026-06-15T09:40:48.8871872Z             }
2026-06-15T09:40:48.8871951Z           ]
2026-06-15T09:40:48.8872032Z         },
2026-06-15T09:40:48.8872104Z         "int": {
2026-06-15T09:40:48.8872185Z           "complete": true,
2026-06-15T09:40:48.8872261Z           "evidence": [
2026-06-15T09:40:48.8872337Z             {
2026-06-15T09:40:48.8872458Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.8872543Z               "line": 156
2026-06-15T09:40:48.8872618Z             },
2026-06-15T09:40:48.8872701Z             {
2026-06-15T09:40:48.8872819Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:40:48.8872896Z               "line": 102
2026-06-15T09:40:48.8872972Z             },
2026-06-15T09:40:48.8873054Z             {
2026-06-15T09:40:48.8873167Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8873248Z               "line": 638
2026-06-15T09:40:48.8873320Z             },
2026-06-15T09:40:48.8873402Z             {
2026-06-15T09:40:48.8873515Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8873606Z               "line": 975
2026-06-15T09:40:48.8873688Z             }
2026-06-15T09:40:48.8873769Z           ]
2026-06-15T09:40:48.8873854Z         },
2026-06-15T09:40:48.8873931Z         "unit": {
2026-06-15T09:40:48.8874027Z           "complete": true,
2026-06-15T09:40:48.8874107Z           "evidence": [
2026-06-15T09:40:48.8874182Z             {
2026-06-15T09:40:48.8874297Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8874378Z               "line": 552
2026-06-15T09:40:48.8874456Z             },
2026-06-15T09:40:48.8874527Z             {
2026-06-15T09:40:48.8874632Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.8874714Z               "line": 595
2026-06-15T09:40:48.8874795Z             },
2026-06-15T09:40:48.8874871Z             {
2026-06-15T09:40:48.8874982Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.8875171Z               "line": 219
2026-06-15T09:40:48.8875253Z             }
2026-06-15T09:40:48.8875334Z           ]
2026-06-15T09:40:48.8875510Z         }
2026-06-15T09:40:48.8875591Z       }
2026-06-15T09:40:48.8875668Z     },
2026-06-15T09:40:48.8875744Z     {
2026-06-15T09:40:48.8875834Z       "id": "REQ-INST-6",
2026-06-15T09:40:48.8876015Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T09:40:48.8876110Z       "requiredStages": [
2026-06-15T09:40:48.8876192Z         "impl",
2026-06-15T09:40:48.8876279Z         "unit",
2026-06-15T09:40:48.8876349Z         "int"
2026-06-15T09:40:48.8876430Z       ],
2026-06-15T09:40:48.8876517Z       "stages": {
2026-06-15T09:40:48.8876594Z         "doc": {
2026-06-15T09:40:48.8876683Z           "complete": true,
2026-06-15T09:40:48.8876768Z           "evidence": [
2026-06-15T09:40:48.8876853Z             {
2026-06-15T09:40:48.8876948Z               "path": "docs/DEFERRED.md",
2026-06-15T09:40:48.8877028Z               "line": 13
2026-06-15T09:40:48.8877108Z             }
2026-06-15T09:40:48.8877180Z           ]
2026-06-15T09:40:48.8877257Z         },
2026-06-15T09:40:48.8877347Z         "impl": {
2026-06-15T09:40:48.8877437Z           "complete": true,
2026-06-15T09:40:48.8877519Z           "evidence": [
2026-06-15T09:40:48.8877601Z             {
2026-06-15T09:40:48.8877719Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.8877800Z               "line": 391
2026-06-15T09:40:48.8877872Z             },
2026-06-15T09:40:48.8877948Z             {
2026-06-15T09:40:48.8878067Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:40:48.8878149Z               "line": 27
2026-06-15T09:40:48.8878229Z             },
2026-06-15T09:40:48.8878306Z             {
2026-06-15T09:40:48.8878410Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:40:48.8878498Z               "line": 73
2026-06-15T09:40:48.8878578Z             },
2026-06-15T09:40:48.8878649Z             {
2026-06-15T09:40:48.8878769Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T09:40:48.8878850Z               "line": 182
2026-06-15T09:40:48.8879026Z             },
2026-06-15T09:40:48.8879098Z             {
2026-06-15T09:40:48.8879212Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8879287Z               "line": 426
2026-06-15T09:40:48.8879364Z             },
2026-06-15T09:40:48.8879442Z             {
2026-06-15T09:40:48.8879541Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T09:40:48.8879621Z               "line": 31
2026-06-15T09:40:48.8879696Z             },
2026-06-15T09:40:48.8879778Z             {
2026-06-15T09:40:48.8879888Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.8879964Z               "line": 187
2026-06-15T09:40:48.8880049Z             },
2026-06-15T09:40:48.8880117Z             {
2026-06-15T09:40:48.8880222Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8880297Z               "line": 83
2026-06-15T09:40:48.8880389Z             },
2026-06-15T09:40:48.8880465Z             {
2026-06-15T09:40:48.8880565Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8880655Z               "line": 1598
2026-06-15T09:40:48.8880733Z             },
2026-06-15T09:40:48.8880808Z             {
2026-06-15T09:40:48.8880913Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8880989Z               "line": 179
2026-06-15T09:40:48.8881071Z             },
2026-06-15T09:40:48.8881151Z             {
2026-06-15T09:40:48.8881247Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8881328Z               "line": 215
2026-06-15T09:40:48.8881419Z             }
2026-06-15T09:40:48.8881499Z           ]
2026-06-15T09:40:48.8881576Z         },
2026-06-15T09:40:48.8881652Z         "int": {
2026-06-15T09:40:48.8881734Z           "complete": true,
2026-06-15T09:40:48.8881823Z           "evidence": [
2026-06-15T09:40:48.8881904Z             {
2026-06-15T09:40:48.8882122Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8882201Z               "line": 652
2026-06-15T09:40:48.8882364Z             },
2026-06-15T09:40:48.8882441Z             {
2026-06-15T09:40:48.8882554Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8882636Z               "line": 1020
2026-06-15T09:40:48.8882708Z             },
2026-06-15T09:40:48.8882793Z             {
2026-06-15T09:40:48.8882897Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.8882980Z               "line": 726
2026-06-15T09:40:48.8883055Z             }
2026-06-15T09:40:48.8883136Z           ]
2026-06-15T09:40:48.8883212Z         },
2026-06-15T09:40:48.8883294Z         "unit": {
2026-06-15T09:40:48.8883384Z           "complete": true,
2026-06-15T09:40:48.8883461Z           "evidence": [
2026-06-15T09:40:48.8883542Z             {
2026-06-15T09:40:48.8883662Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.8883747Z               "line": 661
2026-06-15T09:40:48.8883832Z             },
2026-06-15T09:40:48.8883900Z             {
2026-06-15T09:40:48.8884023Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.8884105Z               "line": 899
2026-06-15T09:40:48.8884181Z             },
2026-06-15T09:40:48.8884253Z             {
2026-06-15T09:40:48.8884362Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T09:40:48.8884452Z               "line": 66
2026-06-15T09:40:48.8884530Z             },
2026-06-15T09:40:48.8884611Z             {
2026-06-15T09:40:48.8884718Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.8884794Z               "line": 282
2026-06-15T09:40:48.8884871Z             },
2026-06-15T09:40:48.8884947Z             {
2026-06-15T09:40:48.8885054Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.8885135Z               "line": 203
2026-06-15T09:40:48.8885217Z             }
2026-06-15T09:40:48.8885293Z           ]
2026-06-15T09:40:48.8885374Z         }
2026-06-15T09:40:48.8885459Z       }
2026-06-15T09:40:48.8885532Z     },
2026-06-15T09:40:48.8885617Z     {
2026-06-15T09:40:48.8885698Z       "id": "REQ-INST-7",
2026-06-15T09:40:48.8885832Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T09:40:48.8885923Z       "requiredStages": [
2026-06-15T09:40:48.8885999Z         "impl",
2026-06-15T09:40:48.8886074Z         "unit",
2026-06-15T09:40:48.8886156Z         "int"
2026-06-15T09:40:48.8886237Z       ],
2026-06-15T09:40:48.8886314Z       "stages": {
2026-06-15T09:40:48.8886399Z         "doc": {
2026-06-15T09:40:48.8886486Z           "complete": false,
2026-06-15T09:40:48.8886576Z           "evidence": []
2026-06-15T09:40:48.8886657Z         },
2026-06-15T09:40:48.8886738Z         "impl": {
2026-06-15T09:40:48.8886829Z           "complete": true,
2026-06-15T09:40:48.8886904Z           "evidence": [
2026-06-15T09:40:48.8886981Z             {
2026-06-15T09:40:48.8887092Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.8887187Z               "line": 436
2026-06-15T09:40:48.8887271Z             },
2026-06-15T09:40:48.8887342Z             {
2026-06-15T09:40:48.8887466Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8887541Z               "line": 27
2026-06-15T09:40:48.8887621Z             },
2026-06-15T09:40:48.8887701Z             {
2026-06-15T09:40:48.8887832Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8887907Z               "line": 207
2026-06-15T09:40:48.8887983Z             },
2026-06-15T09:40:48.8888060Z             {
2026-06-15T09:40:48.8888175Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8888250Z               "line": 344
2026-06-15T09:40:48.8888331Z             },
2026-06-15T09:40:48.8888404Z             {
2026-06-15T09:40:48.8888518Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T09:40:48.8888603Z               "line": 59
2026-06-15T09:40:48.8888680Z             },
2026-06-15T09:40:48.8888837Z             {
2026-06-15T09:40:48.8889048Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8889204Z               "line": 41
2026-06-15T09:40:48.8889285Z             },
2026-06-15T09:40:48.8889368Z             {
2026-06-15T09:40:48.8889485Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8889576Z               "line": 27
2026-06-15T09:40:48.8889653Z             },
2026-06-15T09:40:48.8889725Z             {
2026-06-15T09:40:48.8889843Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8889929Z               "line": 119
2026-06-15T09:40:48.8890002Z             },
2026-06-15T09:40:48.8890077Z             {
2026-06-15T09:40:48.8890195Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8890271Z               "line": 134
2026-06-15T09:40:48.8890348Z             },
2026-06-15T09:40:48.8890430Z             {
2026-06-15T09:40:48.8890538Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T09:40:48.8890629Z               "line": 139
2026-06-15T09:40:48.8890716Z             }
2026-06-15T09:40:48.8890791Z           ]
2026-06-15T09:40:48.8890872Z         },
2026-06-15T09:40:48.8890949Z         "int": {
2026-06-15T09:40:48.8891039Z           "complete": true,
2026-06-15T09:40:48.8891111Z           "evidence": [
2026-06-15T09:40:48.8891187Z             {
2026-06-15T09:40:48.8891302Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:40:48.8891383Z               "line": 102
2026-06-15T09:40:48.8891454Z             },
2026-06-15T09:40:48.8891530Z             {
2026-06-15T09:40:48.8891650Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8891731Z               "line": 596
2026-06-15T09:40:48.8891807Z             },
2026-06-15T09:40:48.8891888Z             {
2026-06-15T09:40:48.8892008Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8892087Z               "line": 870
2026-06-15T09:40:48.8892174Z             }
2026-06-15T09:40:48.8892252Z           ]
2026-06-15T09:40:48.8892332Z         },
2026-06-15T09:40:48.8892412Z         "unit": {
2026-06-15T09:40:48.8892488Z           "complete": true,
2026-06-15T09:40:48.8892574Z           "evidence": [
2026-06-15T09:40:48.8892649Z             {
2026-06-15T09:40:48.8892766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8892857Z               "line": 1082
2026-06-15T09:40:48.8892934Z             },
2026-06-15T09:40:48.8893015Z             {
2026-06-15T09:40:48.8893138Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.8893215Z               "line": 1414
2026-06-15T09:40:48.8893296Z             },
2026-06-15T09:40:48.8893382Z             {
2026-06-15T09:40:48.8893496Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T09:40:48.8893578Z               "line": 84
2026-06-15T09:40:48.8893654Z             },
2026-06-15T09:40:48.8893734Z             {
2026-06-15T09:40:48.8893855Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8893940Z               "line": 780
2026-06-15T09:40:48.8894016Z             },
2026-06-15T09:40:48.8894097Z             {
2026-06-15T09:40:48.8894207Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8894288Z               "line": 791
2026-06-15T09:40:48.8894369Z             },
2026-06-15T09:40:48.8894445Z             {
2026-06-15T09:40:48.8894551Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8894630Z               "line": 806
2026-06-15T09:40:48.8894711Z             },
2026-06-15T09:40:48.8894790Z             {
2026-06-15T09:40:48.8894903Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8894989Z               "line": 166
2026-06-15T09:40:48.8895075Z             },
2026-06-15T09:40:48.8895152Z             {
2026-06-15T09:40:48.8895270Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8895455Z               "line": 181
2026-06-15T09:40:48.8895535Z             },
2026-06-15T09:40:48.8895681Z             {
2026-06-15T09:40:48.8895796Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.8895873Z               "line": 214
2026-06-15T09:40:48.8895953Z             }
2026-06-15T09:40:48.8896029Z           ]
2026-06-15T09:40:48.8896102Z         }
2026-06-15T09:40:48.8896182Z       }
2026-06-15T09:40:48.8896268Z     },
2026-06-15T09:40:48.8896349Z     {
2026-06-15T09:40:48.8896440Z       "id": "REQ-INST-8",
2026-06-15T09:40:48.8896592Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T09:40:48.8896673Z       "requiredStages": [
2026-06-15T09:40:48.8896755Z         "impl",
2026-06-15T09:40:48.8896840Z         "unit",
2026-06-15T09:40:48.8896921Z         "int"
2026-06-15T09:40:48.8896993Z       ],
2026-06-15T09:40:48.8897070Z       "stages": {
2026-06-15T09:40:48.8897150Z         "doc": {
2026-06-15T09:40:48.8897226Z           "complete": false,
2026-06-15T09:40:48.8897322Z           "evidence": []
2026-06-15T09:40:48.8897404Z         },
2026-06-15T09:40:48.8897497Z         "impl": {
2026-06-15T09:40:48.8897569Z           "complete": true,
2026-06-15T09:40:48.8897657Z           "evidence": [
2026-06-15T09:40:48.8897733Z             {
2026-06-15T09:40:48.8897850Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.8897931Z               "line": 104
2026-06-15T09:40:48.8898002Z             },
2026-06-15T09:40:48.8898079Z             {
2026-06-15T09:40:48.8898176Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.8898257Z               "line": 299
2026-06-15T09:40:48.8898339Z             },
2026-06-15T09:40:48.8898416Z             {
2026-06-15T09:40:48.8898529Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.8898601Z               "line": 339
2026-06-15T09:40:48.8898688Z             },
2026-06-15T09:40:48.8898764Z             {
2026-06-15T09:40:48.8898877Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.8899054Z               "line": 62
2026-06-15T09:40:48.8899130Z             }
2026-06-15T09:40:48.8899206Z           ]
2026-06-15T09:40:48.8899274Z         },
2026-06-15T09:40:48.8899355Z         "int": {
2026-06-15T09:40:48.8899440Z           "complete": true,
2026-06-15T09:40:48.8899526Z           "evidence": [
2026-06-15T09:40:48.8899598Z             {
2026-06-15T09:40:48.8899707Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.8899788Z               "line": 415
2026-06-15T09:40:48.8899869Z             },
2026-06-15T09:40:48.8899947Z             {
2026-06-15T09:40:48.8900055Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.8900141Z               "line": 934
2026-06-15T09:40:48.8900219Z             }
2026-06-15T09:40:48.8900300Z           ]
2026-06-15T09:40:48.8900374Z         },
2026-06-15T09:40:48.8900456Z         "unit": {
2026-06-15T09:40:48.8900538Z           "complete": true,
2026-06-15T09:40:48.8900629Z           "evidence": [
2026-06-15T09:40:48.8900712Z             {
2026-06-15T09:40:48.8900831Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8900913Z               "line": 358
2026-06-15T09:40:48.8900990Z             },
2026-06-15T09:40:48.8901070Z             {
2026-06-15T09:40:48.8901184Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8901271Z               "line": 513
2026-06-15T09:40:48.8901351Z             },
2026-06-15T09:40:48.8901427Z             {
2026-06-15T09:40:48.8901538Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.8901619Z               "line": 116
2026-06-15T09:40:48.8901694Z             },
2026-06-15T09:40:48.8901775Z             {
2026-06-15T09:40:48.8901877Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.8901962Z               "line": 160
2026-06-15T09:40:48.8902042Z             }
2026-06-15T09:40:48.8902119Z           ]
2026-06-15T09:40:48.8902305Z         }
2026-06-15T09:40:48.8902381Z       }
2026-06-15T09:40:48.8902458Z     },
2026-06-15T09:40:48.8902629Z     {
2026-06-15T09:40:48.8902724Z       "id": "REQ-INST-9",
2026-06-15T09:40:48.8902905Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T09:40:48.8902986Z       "requiredStages": [
2026-06-15T09:40:48.8903071Z         "impl",
2026-06-15T09:40:48.8903143Z         "unit"
2026-06-15T09:40:48.8903218Z       ],
2026-06-15T09:40:48.8903294Z       "stages": {
2026-06-15T09:40:48.8903379Z         "doc": {
2026-06-15T09:40:48.8903470Z           "complete": false,
2026-06-15T09:40:48.8903552Z           "evidence": []
2026-06-15T09:40:48.8903632Z         },
2026-06-15T09:40:48.8903708Z         "impl": {
2026-06-15T09:40:48.8903794Z           "complete": true,
2026-06-15T09:40:48.8903875Z           "evidence": [
2026-06-15T09:40:48.8903966Z             {
2026-06-15T09:40:48.8904081Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8904171Z               "line": 417
2026-06-15T09:40:48.8904251Z             }
2026-06-15T09:40:48.8904332Z           ]
2026-06-15T09:40:48.8904406Z         },
2026-06-15T09:40:48.8904486Z         "int": {
2026-06-15T09:40:48.8904566Z           "complete": false,
2026-06-15T09:40:48.8904657Z           "evidence": []
2026-06-15T09:40:48.8904735Z         },
2026-06-15T09:40:48.8904810Z         "unit": {
2026-06-15T09:40:48.8904886Z           "complete": true,
2026-06-15T09:40:48.8904976Z           "evidence": [
2026-06-15T09:40:48.8905054Z             {
2026-06-15T09:40:48.8905167Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8905258Z               "line": 1321
2026-06-15T09:40:48.8905330Z             },
2026-06-15T09:40:48.8905406Z             {
2026-06-15T09:40:48.8905510Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8905592Z               "line": 1330
2026-06-15T09:40:48.8905669Z             },
2026-06-15T09:40:48.8905759Z             {
2026-06-15T09:40:48.8905872Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8905967Z               "line": 1346
2026-06-15T09:40:48.8906048Z             },
2026-06-15T09:40:48.8906128Z             {
2026-06-15T09:40:48.8906246Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8906328Z               "line": 1358
2026-06-15T09:40:48.8906400Z             },
2026-06-15T09:40:48.8906475Z             {
2026-06-15T09:40:48.8906585Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.8906662Z               "line": 1378
2026-06-15T09:40:48.8906738Z             }
2026-06-15T09:40:48.8906818Z           ]
2026-06-15T09:40:48.8906894Z         }
2026-06-15T09:40:48.8906976Z       }
2026-06-15T09:40:48.8907058Z     },
2026-06-15T09:40:48.8907133Z     {
2026-06-15T09:40:48.8907238Z       "id": "REQ-INSTALL-1",
2026-06-15T09:40:48.8907414Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T09:40:48.8907514Z       "requiredStages": [
2026-06-15T09:40:48.8907592Z         "doc",
2026-06-15T09:40:48.8907682Z         "impl",
2026-06-15T09:40:48.8907767Z         "int"
2026-06-15T09:40:48.8907844Z       ],
2026-06-15T09:40:48.8907926Z       "stages": {
2026-06-15T09:40:48.8908002Z         "doc": {
2026-06-15T09:40:48.8908101Z           "complete": true,
2026-06-15T09:40:48.8908178Z           "evidence": [
2026-06-15T09:40:48.8908260Z             {
2026-06-15T09:40:48.8908359Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8908434Z               "line": 692
2026-06-15T09:40:48.8908510Z             }
2026-06-15T09:40:48.8908577Z           ]
2026-06-15T09:40:48.8908662Z         },
2026-06-15T09:40:48.8908741Z         "impl": {
2026-06-15T09:40:48.8908831Z           "complete": true,
2026-06-15T09:40:48.8908908Z           "evidence": [
2026-06-15T09:40:48.8909056Z             {
2026-06-15T09:40:48.8909166Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8909339Z               "line": 57
2026-06-15T09:40:48.8909413Z             },
2026-06-15T09:40:48.8909485Z             {
2026-06-15T09:40:48.8909700Z               "path": "installer/install.sh",
2026-06-15T09:40:48.8909776Z               "line": 52
2026-06-15T09:40:48.8909848Z             }
2026-06-15T09:40:48.8909934Z           ]
2026-06-15T09:40:48.8910010Z         },
2026-06-15T09:40:48.8910096Z         "int": {
2026-06-15T09:40:48.8910183Z           "complete": true,
2026-06-15T09:40:48.8910267Z           "evidence": [
2026-06-15T09:40:48.8910353Z             {
2026-06-15T09:40:48.8910469Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:40:48.8910545Z               "line": 21
2026-06-15T09:40:48.8910619Z             }
2026-06-15T09:40:48.8910696Z           ]
2026-06-15T09:40:48.8910764Z         },
2026-06-15T09:40:48.8910841Z         "unit": {
2026-06-15T09:40:48.8910934Z           "complete": false,
2026-06-15T09:40:48.8911006Z           "evidence": []
2026-06-15T09:40:48.8911089Z         }
2026-06-15T09:40:48.8911165Z       }
2026-06-15T09:40:48.8911249Z     },
2026-06-15T09:40:48.8911325Z     {
2026-06-15T09:40:48.8911425Z       "id": "REQ-INSTALL-2",
2026-06-15T09:40:48.8911560Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T09:40:48.8911634Z       "requiredStages": [
2026-06-15T09:40:48.8911715Z         "doc"
2026-06-15T09:40:48.8911788Z       ],
2026-06-15T09:40:48.8911874Z       "stages": {
2026-06-15T09:40:48.8911944Z         "doc": {
2026-06-15T09:40:48.8912040Z           "complete": true,
2026-06-15T09:40:48.8912127Z           "evidence": [
2026-06-15T09:40:48.8912203Z             {
2026-06-15T09:40:48.8912297Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8912379Z               "line": 693
2026-06-15T09:40:48.8912456Z             }
2026-06-15T09:40:48.8912536Z           ]
2026-06-15T09:40:48.8912612Z         },
2026-06-15T09:40:48.8912694Z         "impl": {
2026-06-15T09:40:48.8912775Z           "complete": false,
2026-06-15T09:40:48.8912865Z           "evidence": []
2026-06-15T09:40:48.8912951Z         },
2026-06-15T09:40:48.8913023Z         "int": {
2026-06-15T09:40:48.8913109Z           "complete": false,
2026-06-15T09:40:48.8913198Z           "evidence": []
2026-06-15T09:40:48.8913275Z         },
2026-06-15T09:40:48.8913348Z         "unit": {
2026-06-15T09:40:48.8913442Z           "complete": false,
2026-06-15T09:40:48.8913513Z           "evidence": []
2026-06-15T09:40:48.8913588Z         }
2026-06-15T09:40:48.8913669Z       }
2026-06-15T09:40:48.8913750Z     },
2026-06-15T09:40:48.8913825Z     {
2026-06-15T09:40:48.8913906Z       "id": "REQ-INSTALL-3",
2026-06-15T09:40:48.8914040Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T09:40:48.8914121Z       "requiredStages": [
2026-06-15T09:40:48.8914206Z         "impl",
2026-06-15T09:40:48.8914288Z         "int"
2026-06-15T09:40:48.8914364Z       ],
2026-06-15T09:40:48.8914450Z       "stages": {
2026-06-15T09:40:48.8914526Z         "doc": {
2026-06-15T09:40:48.8914617Z           "complete": false,
2026-06-15T09:40:48.8914698Z           "evidence": []
2026-06-15T09:40:48.8914779Z         },
2026-06-15T09:40:48.8914864Z         "impl": {
2026-06-15T09:40:48.8914951Z           "complete": true,
2026-06-15T09:40:48.8915036Z           "evidence": [
2026-06-15T09:40:48.8915108Z             {
2026-06-15T09:40:48.8915212Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8915295Z               "line": 100
2026-06-15T09:40:48.8915374Z             },
2026-06-15T09:40:48.8915451Z             {
2026-06-15T09:40:48.8915551Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8915643Z               "line": 111
2026-06-15T09:40:48.8915718Z             },
2026-06-15T09:40:48.8915794Z             {
2026-06-15T09:40:48.8915895Z               "path": "installer/install.sh",
2026-06-15T09:40:48.8915986Z               "line": 79
2026-06-15T09:40:48.8916061Z             }
2026-06-15T09:40:48.8916138Z           ]
2026-06-15T09:40:48.8916215Z         },
2026-06-15T09:40:48.8916566Z         "int": {
2026-06-15T09:40:48.8916660Z           "complete": true,
2026-06-15T09:40:48.8916820Z           "evidence": [
2026-06-15T09:40:48.8916898Z             {
2026-06-15T09:40:48.8917003Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:40:48.8917092Z               "line": 167
2026-06-15T09:40:48.8917178Z             }
2026-06-15T09:40:48.8917255Z           ]
2026-06-15T09:40:48.8917336Z         },
2026-06-15T09:40:48.8917412Z         "unit": {
2026-06-15T09:40:48.8917498Z           "complete": false,
2026-06-15T09:40:48.8917575Z           "evidence": []
2026-06-15T09:40:48.8917651Z         }
2026-06-15T09:40:48.8917727Z       }
2026-06-15T09:40:48.8917794Z     },
2026-06-15T09:40:48.8917870Z     {
2026-06-15T09:40:48.8917951Z       "id": "REQ-INSTALL-4",
2026-06-15T09:40:48.8918557Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T09:40:48.8918656Z       "requiredStages": [
2026-06-15T09:40:48.8918738Z         "impl",
2026-06-15T09:40:48.8918825Z         "unit"
2026-06-15T09:40:48.8918900Z       ],
2026-06-15T09:40:48.8919065Z       "stages": {
2026-06-15T09:40:48.8919147Z         "doc": {
2026-06-15T09:40:48.8919236Z           "complete": false,
2026-06-15T09:40:48.8919311Z           "evidence": []
2026-06-15T09:40:48.8919392Z         },
2026-06-15T09:40:48.8919473Z         "impl": {
2026-06-15T09:40:48.8919565Z           "complete": true,
2026-06-15T09:40:48.8919644Z           "evidence": [
2026-06-15T09:40:48.8919716Z             {
2026-06-15T09:40:48.8919846Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.8919922Z               "line": 154
2026-06-15T09:40:48.8920012Z             },
2026-06-15T09:40:48.8920089Z             {
2026-06-15T09:40:48.8920208Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8920298Z               "line": 29
2026-06-15T09:40:48.8920375Z             },
2026-06-15T09:40:48.8920456Z             {
2026-06-15T09:40:48.8920580Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8920661Z               "line": 275
2026-06-15T09:40:48.8920752Z             },
2026-06-15T09:40:48.8920828Z             {
2026-06-15T09:40:48.8920941Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8921019Z               "line": 339
2026-06-15T09:40:48.8921096Z             },
2026-06-15T09:40:48.8921171Z             {
2026-06-15T09:40:48.8921285Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8921377Z               "line": 369
2026-06-15T09:40:48.8921457Z             },
2026-06-15T09:40:48.8921538Z             {
2026-06-15T09:40:48.8921634Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8921711Z               "line": 401
2026-06-15T09:40:48.8921791Z             },
2026-06-15T09:40:48.8921875Z             {
2026-06-15T09:40:48.8921976Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8922053Z               "line": 4841
2026-06-15T09:40:48.8922129Z             }
2026-06-15T09:40:48.8922209Z           ]
2026-06-15T09:40:48.8922295Z         },
2026-06-15T09:40:48.8922368Z         "int": {
2026-06-15T09:40:48.8925071Z           "complete": false,
2026-06-15T09:40:48.8925191Z           "evidence": []
2026-06-15T09:40:48.8925272Z         },
2026-06-15T09:40:48.8925358Z         "unit": {
2026-06-15T09:40:48.8925448Z           "complete": true,
2026-06-15T09:40:48.8925535Z           "evidence": [
2026-06-15T09:40:48.8925625Z             {
2026-06-15T09:40:48.8925758Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.8925845Z               "line": 335
2026-06-15T09:40:48.8925925Z             },
2026-06-15T09:40:48.8925997Z             {
2026-06-15T09:40:48.8926126Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8926345Z               "line": 763
2026-06-15T09:40:48.8926431Z             },
2026-06-15T09:40:48.8926509Z             {
2026-06-15T09:40:48.8926717Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8926794Z               "line": 804
2026-06-15T09:40:48.8926875Z             },
2026-06-15T09:40:48.8926940Z             {
2026-06-15T09:40:48.8927058Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8927131Z               "line": 824
2026-06-15T09:40:48.8927206Z             },
2026-06-15T09:40:48.8927286Z             {
2026-06-15T09:40:48.8927385Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8927477Z               "line": 6797
2026-06-15T09:40:48.8927549Z             }
2026-06-15T09:40:48.8927624Z           ]
2026-06-15T09:40:48.8927705Z         }
2026-06-15T09:40:48.8927787Z       }
2026-06-15T09:40:48.8927858Z     },
2026-06-15T09:40:48.8927938Z     {
2026-06-15T09:40:48.8928034Z       "id": "REQ-INSTALL-5",
2026-06-15T09:40:48.8928516Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T09:40:48.8928626Z       "requiredStages": [
2026-06-15T09:40:48.8928712Z         "impl",
2026-06-15T09:40:48.8928793Z         "int"
2026-06-15T09:40:48.8928873Z       ],
2026-06-15T09:40:48.8929022Z       "stages": {
2026-06-15T09:40:48.8929108Z         "doc": {
2026-06-15T09:40:48.8929197Z           "complete": false,
2026-06-15T09:40:48.8929283Z           "evidence": []
2026-06-15T09:40:48.8929361Z         },
2026-06-15T09:40:48.8929442Z         "impl": {
2026-06-15T09:40:48.8929522Z           "complete": true,
2026-06-15T09:40:48.8929601Z           "evidence": [
2026-06-15T09:40:48.8929678Z             {
2026-06-15T09:40:48.8929787Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8929876Z               "line": 5
2026-06-15T09:40:48.8929957Z             },
2026-06-15T09:40:48.8930038Z             {
2026-06-15T09:40:48.8930139Z               "path": "installer/install.sh",
2026-06-15T09:40:48.8930224Z               "line": 6
2026-06-15T09:40:48.8930300Z             }
2026-06-15T09:40:48.8930378Z           ]
2026-06-15T09:40:48.8930459Z         },
2026-06-15T09:40:48.8930534Z         "int": {
2026-06-15T09:40:48.8930620Z           "complete": true,
2026-06-15T09:40:48.8930706Z           "evidence": [
2026-06-15T09:40:48.8930782Z             {
2026-06-15T09:40:48.8930906Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T09:40:48.8930983Z               "line": 22
2026-06-15T09:40:48.8931054Z             }
2026-06-15T09:40:48.8931135Z           ]
2026-06-15T09:40:48.8931211Z         },
2026-06-15T09:40:48.8931289Z         "unit": {
2026-06-15T09:40:48.8931364Z           "complete": false,
2026-06-15T09:40:48.8931445Z           "evidence": []
2026-06-15T09:40:48.8931526Z         }
2026-06-15T09:40:48.8931604Z       }
2026-06-15T09:40:48.8931688Z     },
2026-06-15T09:40:48.8931759Z     {
2026-06-15T09:40:48.8931845Z       "id": "REQ-INSTALL-6",
2026-06-15T09:40:48.8933170Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T09:40:48.8933257Z       "requiredStages": [
2026-06-15T09:40:48.8933338Z         "impl",
2026-06-15T09:40:48.8933417Z         "unit"
2026-06-15T09:40:48.8933494Z       ],
2026-06-15T09:40:48.8933576Z       "stages": {
2026-06-15T09:40:48.8933651Z         "doc": {
2026-06-15T09:40:48.8933741Z           "complete": false,
2026-06-15T09:40:48.8933834Z           "evidence": []
2026-06-15T09:40:48.8933910Z         },
2026-06-15T09:40:48.8933985Z         "impl": {
2026-06-15T09:40:48.8934076Z           "complete": true,
2026-06-15T09:40:48.8934295Z           "evidence": [
2026-06-15T09:40:48.8934376Z             {
2026-06-15T09:40:48.8934596Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8934681Z               "line": 59
2026-06-15T09:40:48.8934751Z             },
2026-06-15T09:40:48.8934833Z             {
2026-06-15T09:40:48.8934946Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.8935026Z               "line": 559
2026-06-15T09:40:48.8935098Z             },
2026-06-15T09:40:48.8935175Z             {
2026-06-15T09:40:48.8935288Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8935379Z               "line": 191
2026-06-15T09:40:48.8935455Z             },
2026-06-15T09:40:48.8935537Z             {
2026-06-15T09:40:48.8935646Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8935732Z               "line": 276
2026-06-15T09:40:48.8935814Z             },
2026-06-15T09:40:48.8935890Z             {
2026-06-15T09:40:48.8935999Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:40:48.8936086Z               "line": 42
2026-06-15T09:40:48.8936166Z             },
2026-06-15T09:40:48.8936243Z             {
2026-06-15T09:40:48.8936342Z               "path": "installer/install.sh",
2026-06-15T09:40:48.8936424Z               "line": 104
2026-06-15T09:40:48.8936504Z             }
2026-06-15T09:40:48.8936585Z           ]
2026-06-15T09:40:48.8936662Z         },
2026-06-15T09:40:48.8936734Z         "int": {
2026-06-15T09:40:48.8936819Z           "complete": false,
2026-06-15T09:40:48.8936910Z           "evidence": []
2026-06-15T09:40:48.8936991Z         },
2026-06-15T09:40:48.8937073Z         "unit": {
2026-06-15T09:40:48.8937162Z           "complete": true,
2026-06-15T09:40:48.8937234Z           "evidence": [
2026-06-15T09:40:48.8937311Z             {
2026-06-15T09:40:48.8937426Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T09:40:48.8937510Z               "line": 866
2026-06-15T09:40:48.8937600Z             }
2026-06-15T09:40:48.8937676Z           ]
2026-06-15T09:40:48.8937753Z         }
2026-06-15T09:40:48.8937836Z       }
2026-06-15T09:40:48.8937912Z     },
2026-06-15T09:40:48.8937989Z     {
2026-06-15T09:40:48.8938080Z       "id": "REQ-INSTALL-7",
2026-06-15T09:40:48.8939258Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T09:40:48.8939358Z       "requiredStages": [
2026-06-15T09:40:48.8939433Z         "impl"
2026-06-15T09:40:48.8939510Z       ],
2026-06-15T09:40:48.8939587Z       "stages": {
2026-06-15T09:40:48.8939663Z         "doc": {
2026-06-15T09:40:48.8939748Z           "complete": false,
2026-06-15T09:40:48.8939825Z           "evidence": []
2026-06-15T09:40:48.8939907Z         },
2026-06-15T09:40:48.8939983Z         "impl": {
2026-06-15T09:40:48.8940062Z           "complete": true,
2026-06-15T09:40:48.8940143Z           "evidence": [
2026-06-15T09:40:48.8940219Z             {
2026-06-15T09:40:48.8940319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8940403Z               "line": 3480
2026-06-15T09:40:48.8940478Z             },
2026-06-15T09:40:48.8940555Z             {
2026-06-15T09:40:48.8940652Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8940742Z               "line": 157
2026-06-15T09:40:48.8940817Z             }
2026-06-15T09:40:48.8940895Z           ]
2026-06-15T09:40:48.8940971Z         },
2026-06-15T09:40:48.8941047Z         "int": {
2026-06-15T09:40:48.8941142Z           "complete": false,
2026-06-15T09:40:48.8941219Z           "evidence": []
2026-06-15T09:40:48.8941300Z         },
2026-06-15T09:40:48.8941366Z         "unit": {
2026-06-15T09:40:48.8941451Z           "complete": false,
2026-06-15T09:40:48.8941633Z           "evidence": []
2026-06-15T09:40:48.8941714Z         }
2026-06-15T09:40:48.8941873Z       }
2026-06-15T09:40:48.8941953Z     },
2026-06-15T09:40:48.8942034Z     {
2026-06-15T09:40:48.8942120Z       "id": "REQ-INSTALL-8",
2026-06-15T09:40:48.8943149Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T09:40:48.8943240Z       "requiredStages": [
2026-06-15T09:40:48.8943320Z         "impl"
2026-06-15T09:40:48.8943396Z       ],
2026-06-15T09:40:48.8943473Z       "stages": {
2026-06-15T09:40:48.8943554Z         "doc": {
2026-06-15T09:40:48.8943640Z           "complete": false,
2026-06-15T09:40:48.8943730Z           "evidence": []
2026-06-15T09:40:48.8943807Z         },
2026-06-15T09:40:48.8943878Z         "impl": {
2026-06-15T09:40:48.8943964Z           "complete": true,
2026-06-15T09:40:48.8944040Z           "evidence": [
2026-06-15T09:40:48.8944122Z             {
2026-06-15T09:40:48.8944221Z               "path": "installer/install.ps1",
2026-06-15T09:40:48.8944297Z               "line": 184
2026-06-15T09:40:48.8944374Z             },
2026-06-15T09:40:48.8944442Z             {
2026-06-15T09:40:48.8944536Z               "path": "installer/install.sh",
2026-06-15T09:40:48.8944626Z               "line": 121
2026-06-15T09:40:48.8944699Z             }
2026-06-15T09:40:48.8944775Z           ]
2026-06-15T09:40:48.8944855Z         },
2026-06-15T09:40:48.8944932Z         "int": {
2026-06-15T09:40:48.8945018Z           "complete": false,
2026-06-15T09:40:48.8945095Z           "evidence": []
2026-06-15T09:40:48.8945170Z         },
2026-06-15T09:40:48.8945250Z         "unit": {
2026-06-15T09:40:48.8945331Z           "complete": false,
2026-06-15T09:40:48.8945417Z           "evidence": []
2026-06-15T09:40:48.8945497Z         }
2026-06-15T09:40:48.8945577Z       }
2026-06-15T09:40:48.8945658Z     },
2026-06-15T09:40:48.8945740Z     {
2026-06-15T09:40:48.8945825Z       "id": "REQ-KICK-1",
2026-06-15T09:40:48.8948279Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T09:40:48.8948383Z       "requiredStages": [
2026-06-15T09:40:48.8948458Z         "doc",
2026-06-15T09:40:48.8948540Z         "impl",
2026-06-15T09:40:48.8948612Z         "unit",
2026-06-15T09:40:48.8948688Z         "int"
2026-06-15T09:40:48.8948768Z       ],
2026-06-15T09:40:48.8948844Z       "stages": {
2026-06-15T09:40:48.8948931Z         "doc": {
2026-06-15T09:40:48.8949106Z           "complete": true,
2026-06-15T09:40:48.8949189Z           "evidence": [
2026-06-15T09:40:48.8949265Z             {
2026-06-15T09:40:48.8949360Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8949440Z               "line": 320
2026-06-15T09:40:48.8949517Z             }
2026-06-15T09:40:48.8949589Z           ]
2026-06-15T09:40:48.8949660Z         },
2026-06-15T09:40:48.8949746Z         "impl": {
2026-06-15T09:40:48.8949832Z           "complete": true,
2026-06-15T09:40:48.8950031Z           "evidence": [
2026-06-15T09:40:48.8950108Z             {
2026-06-15T09:40:48.8950317Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.8950404Z               "line": 41
2026-06-15T09:40:48.8950486Z             },
2026-06-15T09:40:48.8950557Z             {
2026-06-15T09:40:48.8950656Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.8950736Z               "line": 181
2026-06-15T09:40:48.8950808Z             }
2026-06-15T09:40:48.8950893Z           ]
2026-06-15T09:40:48.8950963Z         },
2026-06-15T09:40:48.8951044Z         "int": {
2026-06-15T09:40:48.8951135Z           "complete": true,
2026-06-15T09:40:48.8951217Z           "evidence": [
2026-06-15T09:40:48.8951292Z             {
2026-06-15T09:40:48.8951402Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.8951484Z               "line": 789
2026-06-15T09:40:48.8951569Z             }
2026-06-15T09:40:48.8951649Z           ]
2026-06-15T09:40:48.8951736Z         },
2026-06-15T09:40:48.8951812Z         "unit": {
2026-06-15T09:40:48.8951903Z           "complete": true,
2026-06-15T09:40:48.8951998Z           "evidence": [
2026-06-15T09:40:48.8952080Z             {
2026-06-15T09:40:48.8952184Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.8952255Z               "line": 205
2026-06-15T09:40:48.8952341Z             }
2026-06-15T09:40:48.8952419Z           ]
2026-06-15T09:40:48.8952494Z         }
2026-06-15T09:40:48.8952575Z       }
2026-06-15T09:40:48.8952651Z     },
2026-06-15T09:40:48.8952729Z     {
2026-06-15T09:40:48.8952818Z       "id": "REQ-MANIFEST-1",
2026-06-15T09:40:48.8953010Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T09:40:48.8953086Z       "requiredStages": [
2026-06-15T09:40:48.8953170Z         "doc",
2026-06-15T09:40:48.8953257Z         "impl",
2026-06-15T09:40:48.8953329Z         "unit"
2026-06-15T09:40:48.8953406Z       ],
2026-06-15T09:40:48.8953485Z       "stages": {
2026-06-15T09:40:48.8953575Z         "doc": {
2026-06-15T09:40:48.8953647Z           "complete": true,
2026-06-15T09:40:48.8953733Z           "evidence": [
2026-06-15T09:40:48.8953809Z             {
2026-06-15T09:40:48.8953904Z               "path": "docs/MANIFEST.md",
2026-06-15T09:40:48.8953990Z               "line": 19
2026-06-15T09:40:48.8954057Z             }
2026-06-15T09:40:48.8954129Z           ]
2026-06-15T09:40:48.8954209Z         },
2026-06-15T09:40:48.8954286Z         "impl": {
2026-06-15T09:40:48.8954372Z           "complete": true,
2026-06-15T09:40:48.8954458Z           "evidence": [
2026-06-15T09:40:48.8954533Z             {
2026-06-15T09:40:48.8954649Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8954734Z               "line": 18
2026-06-15T09:40:48.8954815Z             }
2026-06-15T09:40:48.8954895Z           ]
2026-06-15T09:40:48.8954974Z         },
2026-06-15T09:40:48.8955049Z         "int": {
2026-06-15T09:40:48.8955130Z           "complete": false,
2026-06-15T09:40:48.8955220Z           "evidence": []
2026-06-15T09:40:48.8955298Z         },
2026-06-15T09:40:48.8955383Z         "unit": {
2026-06-15T09:40:48.8955473Z           "complete": true,
2026-06-15T09:40:48.8955549Z           "evidence": [
2026-06-15T09:40:48.8955627Z             {
2026-06-15T09:40:48.8955744Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8955825Z               "line": 837
2026-06-15T09:40:48.8955906Z             },
2026-06-15T09:40:48.8955987Z             {
2026-06-15T09:40:48.8956099Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8956184Z               "line": 915
2026-06-15T09:40:48.8956266Z             },
2026-06-15T09:40:48.8956348Z             {
2026-06-15T09:40:48.8956456Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8956542Z               "line": 927
2026-06-15T09:40:48.8956620Z             },
2026-06-15T09:40:48.8956705Z             {
2026-06-15T09:40:48.8956814Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8956972Z               "line": 938
2026-06-15T09:40:48.8957114Z             },
2026-06-15T09:40:48.8957192Z             {
2026-06-15T09:40:48.8957296Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8957377Z               "line": 955
2026-06-15T09:40:48.8957453Z             },
2026-06-15T09:40:48.8957530Z             {
2026-06-15T09:40:48.8957644Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8957720Z               "line": 969
2026-06-15T09:40:48.8957797Z             },
2026-06-15T09:40:48.8957869Z             {
2026-06-15T09:40:48.8957977Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8958063Z               "line": 1034
2026-06-15T09:40:48.8958141Z             },
2026-06-15T09:40:48.8958222Z             {
2026-06-15T09:40:48.8958335Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8958417Z               "line": 1049
2026-06-15T09:40:48.8958494Z             },
2026-06-15T09:40:48.8958574Z             {
2026-06-15T09:40:48.8958687Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8958763Z               "line": 1160
2026-06-15T09:40:48.8958839Z             },
2026-06-15T09:40:48.8958924Z             {
2026-06-15T09:40:48.8959109Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8959196Z               "line": 1171
2026-06-15T09:40:48.8959272Z             }
2026-06-15T09:40:48.8959347Z           ]
2026-06-15T09:40:48.8959429Z         }
2026-06-15T09:40:48.8959506Z       }
2026-06-15T09:40:48.8959587Z     },
2026-06-15T09:40:48.8959662Z     {
2026-06-15T09:40:48.8959763Z       "id": "REQ-MANIFEST-2",
2026-06-15T09:40:48.8960254Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T09:40:48.8960353Z       "requiredStages": [
2026-06-15T09:40:48.8960445Z         "doc",
2026-06-15T09:40:48.8960525Z         "impl",
2026-06-15T09:40:48.8960601Z         "unit"
2026-06-15T09:40:48.8960688Z       ],
2026-06-15T09:40:48.8960779Z       "stages": {
2026-06-15T09:40:48.8960854Z         "doc": {
2026-06-15T09:40:48.8960940Z           "complete": true,
2026-06-15T09:40:48.8961032Z           "evidence": [
2026-06-15T09:40:48.8961113Z             {
2026-06-15T09:40:48.8961206Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8961287Z               "line": 75
2026-06-15T09:40:48.8961363Z             }
2026-06-15T09:40:48.8961444Z           ]
2026-06-15T09:40:48.8961518Z         },
2026-06-15T09:40:48.8961604Z         "impl": {
2026-06-15T09:40:48.8961681Z           "complete": true,
2026-06-15T09:40:48.8961762Z           "evidence": [
2026-06-15T09:40:48.8961843Z             {
2026-06-15T09:40:48.8961957Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8962039Z               "line": 62
2026-06-15T09:40:48.8962130Z             },
2026-06-15T09:40:48.8962209Z             {
2026-06-15T09:40:48.8962320Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8962415Z               "line": 15
2026-06-15T09:40:48.8962486Z             },
2026-06-15T09:40:48.8962558Z             {
2026-06-15T09:40:48.8962673Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8962758Z               "line": 65
2026-06-15T09:40:48.8962834Z             },
2026-06-15T09:40:48.8962910Z             {
2026-06-15T09:40:48.8963026Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8963102Z               "line": 83
2026-06-15T09:40:48.8963187Z             },
2026-06-15T09:40:48.8963265Z             {
2026-06-15T09:40:48.8963378Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8963464Z               "line": 183
2026-06-15T09:40:48.8963540Z             },
2026-06-15T09:40:48.8963618Z             {
2026-06-15T09:40:48.8963725Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8963942Z               "line": 482
2026-06-15T09:40:48.8964102Z             },
2026-06-15T09:40:48.8964192Z             {
2026-06-15T09:40:48.8964308Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8964393Z               "line": 508
2026-06-15T09:40:48.8964469Z             },
2026-06-15T09:40:48.8964550Z             {
2026-06-15T09:40:48.8964660Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8964750Z               "line": 626
2026-06-15T09:40:48.8964826Z             },
2026-06-15T09:40:48.8964904Z             {
2026-06-15T09:40:48.8965013Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8965103Z               "line": 651
2026-06-15T09:40:48.8965180Z             },
2026-06-15T09:40:48.8965261Z             {
2026-06-15T09:40:48.8965366Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8965446Z               "line": 674
2026-06-15T09:40:48.8965538Z             },
2026-06-15T09:40:48.8965618Z             {
2026-06-15T09:40:48.8965733Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8965814Z               "line": 689
2026-06-15T09:40:48.8965900Z             },
2026-06-15T09:40:48.8965975Z             {
2026-06-15T09:40:48.8966076Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8966158Z               "line": 4991
2026-06-15T09:40:48.8966234Z             },
2026-06-15T09:40:48.8966319Z             {
2026-06-15T09:40:48.8966418Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8966504Z               "line": 5005
2026-06-15T09:40:48.8966589Z             },
2026-06-15T09:40:48.8966659Z             {
2026-06-15T09:40:48.8966754Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8966836Z               "line": 5039
2026-06-15T09:40:48.8966913Z             }
2026-06-15T09:40:48.8966993Z           ]
2026-06-15T09:40:48.8967074Z         },
2026-06-15T09:40:48.8967160Z         "int": {
2026-06-15T09:40:48.8967246Z           "complete": false,
2026-06-15T09:40:48.8967331Z           "evidence": []
2026-06-15T09:40:48.8967412Z         },
2026-06-15T09:40:48.8967485Z         "unit": {
2026-06-15T09:40:48.8967565Z           "complete": true,
2026-06-15T09:40:48.8967660Z           "evidence": [
2026-06-15T09:40:48.8967737Z             {
2026-06-15T09:40:48.8967852Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.8967932Z               "line": 920
2026-06-15T09:40:48.8968013Z             },
2026-06-15T09:40:48.8968091Z             {
2026-06-15T09:40:48.8968204Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8968295Z               "line": 211
2026-06-15T09:40:48.8968367Z             },
2026-06-15T09:40:48.8968443Z             {
2026-06-15T09:40:48.8968561Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8968642Z               "line": 272
2026-06-15T09:40:48.8968716Z             },
2026-06-15T09:40:48.8968805Z             {
2026-06-15T09:40:48.8968924Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8969078Z               "line": 313
2026-06-15T09:40:48.8969158Z             },
2026-06-15T09:40:48.8969237Z             {
2026-06-15T09:40:48.8969347Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8969433Z               "line": 325
2026-06-15T09:40:48.8969507Z             },
2026-06-15T09:40:48.8969592Z             {
2026-06-15T09:40:48.8969703Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8969775Z               "line": 336
2026-06-15T09:40:48.8969851Z             },
2026-06-15T09:40:48.8969931Z             {
2026-06-15T09:40:48.8970047Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8970123Z               "line": 345
2026-06-15T09:40:48.8970546Z             },
2026-06-15T09:40:48.8970638Z             {
2026-06-15T09:40:48.8970757Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8970958Z               "line": 361
2026-06-15T09:40:48.8971113Z             },
2026-06-15T09:40:48.8971195Z             {
2026-06-15T09:40:48.8971315Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8971386Z               "line": 444
2026-06-15T09:40:48.8971467Z             },
2026-06-15T09:40:48.8971549Z             {
2026-06-15T09:40:48.8971711Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8971809Z               "line": 877
2026-06-15T09:40:48.8971890Z             },
2026-06-15T09:40:48.8971971Z             {
2026-06-15T09:40:48.8972084Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8972179Z               "line": 901
2026-06-15T09:40:48.8972255Z             },
2026-06-15T09:40:48.8972337Z             {
2026-06-15T09:40:48.8972445Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8972527Z               "line": 927
2026-06-15T09:40:48.8972642Z             },
2026-06-15T09:40:48.8972727Z             {
2026-06-15T09:40:48.8972846Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8972961Z               "line": 946
2026-06-15T09:40:48.8973042Z             },
2026-06-15T09:40:48.8973113Z             {
2026-06-15T09:40:48.8973229Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8973313Z               "line": 977
2026-06-15T09:40:48.8973394Z             },
2026-06-15T09:40:48.8973471Z             {
2026-06-15T09:40:48.8973577Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.8973672Z               "line": 309
2026-06-15T09:40:48.8973752Z             },
2026-06-15T09:40:48.8973844Z             {
2026-06-15T09:40:48.8973948Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.8974029Z               "line": 486
2026-06-15T09:40:48.8974115Z             },
2026-06-15T09:40:48.8974192Z             {
2026-06-15T09:40:48.8974295Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8974386Z               "line": 6934
2026-06-15T09:40:48.8974478Z             },
2026-06-15T09:40:48.8974559Z             {
2026-06-15T09:40:48.8974648Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8974733Z               "line": 7818
2026-06-15T09:40:48.8974805Z             }
2026-06-15T09:40:48.8974887Z           ]
2026-06-15T09:40:48.8974962Z         }
2026-06-15T09:40:48.8975048Z       }
2026-06-15T09:40:48.8975129Z     },
2026-06-15T09:40:48.8975206Z     {
2026-06-15T09:40:48.8975305Z       "id": "REQ-MANIFEST-3",
2026-06-15T09:40:48.8975954Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T09:40:48.8976050Z       "requiredStages": [
2026-06-15T09:40:48.8976136Z         "doc",
2026-06-15T09:40:48.8976221Z         "impl",
2026-06-15T09:40:48.8976317Z         "unit"
2026-06-15T09:40:48.8976394Z       ],
2026-06-15T09:40:48.8976475Z       "stages": {
2026-06-15T09:40:48.8976545Z         "doc": {
2026-06-15T09:40:48.8976636Z           "complete": true,
2026-06-15T09:40:48.8976708Z           "evidence": [
2026-06-15T09:40:48.8976789Z             {
2026-06-15T09:40:48.8976884Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8976959Z               "line": 81
2026-06-15T09:40:48.8977045Z             }
2026-06-15T09:40:48.8977125Z           ]
2026-06-15T09:40:48.8977205Z         },
2026-06-15T09:40:48.8977280Z         "impl": {
2026-06-15T09:40:48.8977362Z           "complete": true,
2026-06-15T09:40:48.8977449Z           "evidence": [
2026-06-15T09:40:48.8977524Z             {
2026-06-15T09:40:48.8977649Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8977720Z               "line": 72
2026-06-15T09:40:48.8977806Z             },
2026-06-15T09:40:48.8977882Z             {
2026-06-15T09:40:48.8977997Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8978158Z               "line": 101
2026-06-15T09:40:48.8978297Z             },
2026-06-15T09:40:48.8978374Z             {
2026-06-15T09:40:48.8978487Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8978573Z               "line": 132
2026-06-15T09:40:48.8978656Z             },
2026-06-15T09:40:48.8978731Z             {
2026-06-15T09:40:48.8978845Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8978927Z               "line": 532
2026-06-15T09:40:48.8979084Z             },
2026-06-15T09:40:48.8979165Z             {
2026-06-15T09:40:48.8979276Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8979365Z               "line": 588
2026-06-15T09:40:48.8979446Z             },
2026-06-15T09:40:48.8979522Z             {
2026-06-15T09:40:48.8979619Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8979708Z               "line": 5052
2026-06-15T09:40:48.8979784Z             },
2026-06-15T09:40:48.8979859Z             {
2026-06-15T09:40:48.8979965Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8980053Z               "line": 5078
2026-06-15T09:40:48.8980134Z             }
2026-06-15T09:40:48.8980205Z           ]
2026-06-15T09:40:48.8980287Z         },
2026-06-15T09:40:48.8980368Z         "int": {
2026-06-15T09:40:48.8980463Z           "complete": false,
2026-06-15T09:40:48.8980554Z           "evidence": []
2026-06-15T09:40:48.8980631Z         },
2026-06-15T09:40:48.8980711Z         "unit": {
2026-06-15T09:40:48.8980801Z           "complete": true,
2026-06-15T09:40:48.8980879Z           "evidence": [
2026-06-15T09:40:48.8980959Z             {
2026-06-15T09:40:48.8981073Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8981164Z               "line": 371
2026-06-15T09:40:48.8981241Z             },
2026-06-15T09:40:48.8981322Z             {
2026-06-15T09:40:48.8981431Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8981518Z               "line": 429
2026-06-15T09:40:48.8981594Z             },
2026-06-15T09:40:48.8981678Z             {
2026-06-15T09:40:48.8981794Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8981880Z               "line": 1001
2026-06-15T09:40:48.8981965Z             },
2026-06-15T09:40:48.8982042Z             {
2026-06-15T09:40:48.8982143Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.8982233Z               "line": 6989
2026-06-15T09:40:48.8982318Z             }
2026-06-15T09:40:48.8982398Z           ]
2026-06-15T09:40:48.8982479Z         }
2026-06-15T09:40:48.8982550Z       }
2026-06-15T09:40:48.8982630Z     },
2026-06-15T09:40:48.8982715Z     {
2026-06-15T09:40:48.8982806Z       "id": "REQ-MANIFEST-4",
2026-06-15T09:40:48.8983502Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T09:40:48.8983607Z       "requiredStages": [
2026-06-15T09:40:48.8983697Z         "doc",
2026-06-15T09:40:48.8983770Z         "impl",
2026-06-15T09:40:48.8983851Z         "unit"
2026-06-15T09:40:48.8983927Z       ],
2026-06-15T09:40:48.8984007Z       "stages": {
2026-06-15T09:40:48.8984089Z         "doc": {
2026-06-15T09:40:48.8984184Z           "complete": true,
2026-06-15T09:40:48.8984265Z           "evidence": [
2026-06-15T09:40:48.8984351Z             {
2026-06-15T09:40:48.8984442Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8984518Z               "line": 88
2026-06-15T09:40:48.8984599Z             }
2026-06-15T09:40:48.8984680Z           ]
2026-06-15T09:40:48.8984772Z         },
2026-06-15T09:40:48.8984846Z         "impl": {
2026-06-15T09:40:48.8984928Z           "complete": true,
2026-06-15T09:40:48.8985010Z           "evidence": [
2026-06-15T09:40:48.8985096Z             {
2026-06-15T09:40:48.8985212Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8985394Z               "line": 80
2026-06-15T09:40:48.8985579Z             },
2026-06-15T09:40:48.8985661Z             {
2026-06-15T09:40:48.8985771Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8985852Z               "line": 152
2026-06-15T09:40:48.8985928Z             },
2026-06-15T09:40:48.8986010Z             {
2026-06-15T09:40:48.8986124Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.8986213Z               "line": 83
2026-06-15T09:40:48.8986295Z             },
2026-06-15T09:40:48.8986382Z             {
2026-06-15T09:40:48.8986495Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8986576Z               "line": 505
2026-06-15T09:40:48.8986653Z             },
2026-06-15T09:40:48.8986725Z             {
2026-06-15T09:40:48.8986838Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8986925Z               "line": 530
2026-06-15T09:40:48.8987016Z             }
2026-06-15T09:40:48.8987091Z           ]
2026-06-15T09:40:48.8987167Z         },
2026-06-15T09:40:48.8987254Z         "int": {
2026-06-15T09:40:48.8987345Z           "complete": false,
2026-06-15T09:40:48.8987424Z           "evidence": []
2026-06-15T09:40:48.8987505Z         },
2026-06-15T09:40:48.8987582Z         "unit": {
2026-06-15T09:40:48.8987667Z           "complete": true,
2026-06-15T09:40:48.8987755Z           "evidence": [
2026-06-15T09:40:48.8987832Z             {
2026-06-15T09:40:48.8987942Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8988029Z               "line": 984
2026-06-15T09:40:48.8988113Z             },
2026-06-15T09:40:48.8988194Z             {
2026-06-15T09:40:48.8988309Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.8988395Z               "line": 1017
2026-06-15T09:40:48.8988471Z             },
2026-06-15T09:40:48.8988547Z             {
2026-06-15T09:40:48.8988652Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.8988737Z               "line": 862
2026-06-15T09:40:48.8988818Z             }
2026-06-15T09:40:48.8988896Z           ]
2026-06-15T09:40:48.8989052Z         }
2026-06-15T09:40:48.8989138Z       }
2026-06-15T09:40:48.8989220Z     },
2026-06-15T09:40:48.8989300Z     {
2026-06-15T09:40:48.8989391Z       "id": "REQ-MANIFEST-5",
2026-06-15T09:40:48.8992229Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T09:40:48.8992339Z       "requiredStages": [
2026-06-15T09:40:48.8992417Z         "doc",
2026-06-15T09:40:48.8992497Z         "impl",
2026-06-15T09:40:48.8992577Z         "unit"
2026-06-15T09:40:48.8992649Z       ],
2026-06-15T09:40:48.8992746Z       "stages": {
2026-06-15T09:40:48.8992817Z         "doc": {
2026-06-15T09:40:48.8992911Z           "complete": true,
2026-06-15T09:40:48.8992986Z           "evidence": [
2026-06-15T09:40:48.8993073Z             {
2026-06-15T09:40:48.8993171Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.8993260Z               "line": 83
2026-06-15T09:40:48.8993337Z             }
2026-06-15T09:40:48.8993509Z           ]
2026-06-15T09:40:48.8993589Z         },
2026-06-15T09:40:48.8996417Z         "impl": {
2026-06-15T09:40:48.8996669Z           "complete": true,
2026-06-15T09:40:48.8996755Z           "evidence": [
2026-06-15T09:40:48.8996831Z             {
2026-06-15T09:40:48.8996966Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8997042Z               "line": 120
2026-06-15T09:40:48.8997117Z             }
2026-06-15T09:40:48.8997195Z           ]
2026-06-15T09:40:48.8997271Z         },
2026-06-15T09:40:48.8997351Z         "int": {
2026-06-15T09:40:48.8997441Z           "complete": false,
2026-06-15T09:40:48.8997533Z           "evidence": []
2026-06-15T09:40:48.8997609Z         },
2026-06-15T09:40:48.8997684Z         "unit": {
2026-06-15T09:40:48.8997766Z           "complete": true,
2026-06-15T09:40:48.8997848Z           "evidence": [
2026-06-15T09:40:48.8997929Z             {
2026-06-15T09:40:48.8998042Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T09:40:48.8998142Z               "line": 404
2026-06-15T09:40:48.8998218Z             },
2026-06-15T09:40:48.8998297Z             {
2026-06-15T09:40:48.8998420Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8998502Z               "line": 1074
2026-06-15T09:40:48.8998579Z             },
2026-06-15T09:40:48.8998654Z             {
2026-06-15T09:40:48.8998778Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8998860Z               "line": 1103
2026-06-15T09:40:48.8999031Z             },
2026-06-15T09:40:48.8999103Z             {
2026-06-15T09:40:48.8999207Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8999289Z               "line": 1143
2026-06-15T09:40:48.8999369Z             },
2026-06-15T09:40:48.8999451Z             {
2026-06-15T09:40:48.8999560Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.8999636Z               "line": 1158
2026-06-15T09:40:48.8999708Z             }
2026-06-15T09:40:48.8999790Z           ]
2026-06-15T09:40:48.8999875Z         }
2026-06-15T09:40:48.8999956Z       }
2026-06-15T09:40:48.9000037Z     },
2026-06-15T09:40:48.9000110Z     {
2026-06-15T09:40:48.9000208Z       "id": "REQ-MANIFEST-6",
2026-06-15T09:40:48.9002318Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T09:40:48.9002413Z       "requiredStages": [
2026-06-15T09:40:48.9002494Z         "doc",
2026-06-15T09:40:48.9002570Z         "unit"
2026-06-15T09:40:48.9002658Z       ],
2026-06-15T09:40:48.9002733Z       "stages": {
2026-06-15T09:40:48.9002813Z         "doc": {
2026-06-15T09:40:48.9002909Z           "complete": true,
2026-06-15T09:40:48.9002996Z           "evidence": [
2026-06-15T09:40:48.9003076Z             {
2026-06-15T09:40:48.9003162Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9003244Z               "line": 139
2026-06-15T09:40:48.9003316Z             }
2026-06-15T09:40:48.9003395Z           ]
2026-06-15T09:40:48.9003476Z         },
2026-06-15T09:40:48.9003561Z         "impl": {
2026-06-15T09:40:48.9003652Z           "complete": false,
2026-06-15T09:40:48.9003740Z           "evidence": []
2026-06-15T09:40:48.9003821Z         },
2026-06-15T09:40:48.9003902Z         "int": {
2026-06-15T09:40:48.9003984Z           "complete": false,
2026-06-15T09:40:48.9004060Z           "evidence": []
2026-06-15T09:40:48.9004140Z         },
2026-06-15T09:40:48.9004323Z         "unit": {
2026-06-15T09:40:48.9004412Z           "complete": true,
2026-06-15T09:40:48.9004576Z           "evidence": [
2026-06-15T09:40:48.9004656Z             {
2026-06-15T09:40:48.9004775Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T09:40:48.9004861Z               "line": 1180
2026-06-15T09:40:48.9004937Z             }
2026-06-15T09:40:48.9005013Z           ]
2026-06-15T09:40:48.9005094Z         }
2026-06-15T09:40:48.9005171Z       }
2026-06-15T09:40:48.9005248Z     },
2026-06-15T09:40:48.9005323Z     {
2026-06-15T09:40:48.9005423Z       "id": "REQ-MANIFEST-7",
2026-06-15T09:40:48.9008418Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T09:40:48.9008517Z       "requiredStages": [
2026-06-15T09:40:48.9008592Z         "doc",
2026-06-15T09:40:48.9008673Z         "impl",
2026-06-15T09:40:48.9008754Z         "unit"
2026-06-15T09:40:48.9008825Z       ],
2026-06-15T09:40:48.9008919Z       "stages": {
2026-06-15T09:40:48.9009071Z         "doc": {
2026-06-15T09:40:48.9009159Z           "complete": true,
2026-06-15T09:40:48.9009252Z           "evidence": [
2026-06-15T09:40:48.9009329Z             {
2026-06-15T09:40:48.9009425Z               "path": "docs/MANIFEST.md",
2026-06-15T09:40:48.9009506Z               "line": 34
2026-06-15T09:40:48.9009586Z             }
2026-06-15T09:40:48.9009663Z           ]
2026-06-15T09:40:48.9009745Z         },
2026-06-15T09:40:48.9009821Z         "impl": {
2026-06-15T09:40:48.9009900Z           "complete": true,
2026-06-15T09:40:48.9009978Z           "evidence": [
2026-06-15T09:40:48.9010069Z             {
2026-06-15T09:40:48.9010183Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:40:48.9010268Z               "line": 54
2026-06-15T09:40:48.9010350Z             }
2026-06-15T09:40:48.9010421Z           ]
2026-06-15T09:40:48.9010502Z         },
2026-06-15T09:40:48.9010578Z         "int": {
2026-06-15T09:40:48.9010660Z           "complete": false,
2026-06-15T09:40:48.9010750Z           "evidence": []
2026-06-15T09:40:48.9010826Z         },
2026-06-15T09:40:48.9010907Z         "unit": {
2026-06-15T09:40:48.9011008Z           "complete": true,
2026-06-15T09:40:48.9011088Z           "evidence": [
2026-06-15T09:40:48.9011169Z             {
2026-06-15T09:40:48.9011290Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.9011380Z               "line": 1177
2026-06-15T09:40:48.9011459Z             }
2026-06-15T09:40:48.9011544Z           ]
2026-06-15T09:40:48.9011621Z         }
2026-06-15T09:40:48.9011702Z       }
2026-06-15T09:40:48.9011776Z     },
2026-06-15T09:40:48.9011852Z     {
2026-06-15T09:40:48.9011934Z       "id": "REQ-MESH-1",
2026-06-15T09:40:48.9013979Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T09:40:48.9014272Z       "requiredStages": [
2026-06-15T09:40:48.9014348Z         "impl",
2026-06-15T09:40:48.9014428Z         "unit",
2026-06-15T09:40:48.9014506Z         "int"
2026-06-15T09:40:48.9014583Z       ],
2026-06-15T09:40:48.9014663Z       "stages": {
2026-06-15T09:40:48.9014743Z         "doc": {
2026-06-15T09:40:48.9014835Z           "complete": false,
2026-06-15T09:40:48.9014926Z           "evidence": []
2026-06-15T09:40:48.9015006Z         },
2026-06-15T09:40:48.9015087Z         "impl": {
2026-06-15T09:40:48.9015164Z           "complete": true,
2026-06-15T09:40:48.9015245Z           "evidence": [
2026-06-15T09:40:48.9015325Z             {
2026-06-15T09:40:48.9015450Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9015540Z               "line": 771
2026-06-15T09:40:48.9015621Z             },
2026-06-15T09:40:48.9015697Z             {
2026-06-15T09:40:48.9015822Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9015912Z               "line": 38
2026-06-15T09:40:48.9015993Z             },
2026-06-15T09:40:48.9016080Z             {
2026-06-15T09:40:48.9016203Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9016284Z               "line": 161
2026-06-15T09:40:48.9016356Z             },
2026-06-15T09:40:48.9016433Z             {
2026-06-15T09:40:48.9016536Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9016623Z               "line": 206
2026-06-15T09:40:48.9016704Z             },
2026-06-15T09:40:48.9016781Z             {
2026-06-15T09:40:48.9016893Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9016983Z               "line": 57
2026-06-15T09:40:48.9017061Z             },
2026-06-15T09:40:48.9017137Z             {
2026-06-15T09:40:48.9017274Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9017356Z               "line": 24
2026-06-15T09:40:48.9017438Z             },
2026-06-15T09:40:48.9017513Z             {
2026-06-15T09:40:48.9017651Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9017733Z               "line": 142
2026-06-15T09:40:48.9017809Z             },
2026-06-15T09:40:48.9017885Z             {
2026-06-15T09:40:48.9018010Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9018100Z               "line": 162
2026-06-15T09:40:48.9018181Z             }
2026-06-15T09:40:48.9018261Z           ]
2026-06-15T09:40:48.9018339Z         },
2026-06-15T09:40:48.9018429Z         "int": {
2026-06-15T09:40:48.9018519Z           "complete": true,
2026-06-15T09:40:48.9018596Z           "evidence": [
2026-06-15T09:40:48.9018677Z             {
2026-06-15T09:40:48.9018795Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:40:48.9018886Z               "line": 67
2026-06-15T09:40:48.9019030Z             },
2026-06-15T09:40:48.9019115Z             {
2026-06-15T09:40:48.9019238Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:40:48.9019324Z               "line": 93
2026-06-15T09:40:48.9019404Z             },
2026-06-15T09:40:48.9019469Z             {
2026-06-15T09:40:48.9019584Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:40:48.9019661Z               "line": 117
2026-06-15T09:40:48.9019751Z             },
2026-06-15T09:40:48.9019831Z             {
2026-06-15T09:40:48.9019946Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T09:40:48.9020023Z               "line": 134
2026-06-15T09:40:48.9020099Z             }
2026-06-15T09:40:48.9020175Z           ]
2026-06-15T09:40:48.9020247Z         },
2026-06-15T09:40:48.9020338Z         "unit": {
2026-06-15T09:40:48.9020533Z           "complete": true,
2026-06-15T09:40:48.9020610Z           "evidence": [
2026-06-15T09:40:48.9020780Z             {
2026-06-15T09:40:48.9020896Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9020972Z               "line": 427
2026-06-15T09:40:48.9021043Z             },
2026-06-15T09:40:48.9021128Z             {
2026-06-15T09:40:48.9021249Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9021329Z               "line": 376
2026-06-15T09:40:48.9021405Z             },
2026-06-15T09:40:48.9021482Z             {
2026-06-15T09:40:48.9021602Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9021686Z               "line": 412
2026-06-15T09:40:48.9021763Z             },
2026-06-15T09:40:48.9021841Z             {
2026-06-15T09:40:48.9021954Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9022034Z               "line": 427
2026-06-15T09:40:48.9022114Z             },
2026-06-15T09:40:48.9022191Z             {
2026-06-15T09:40:48.9022308Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9022389Z               "line": 438
2026-06-15T09:40:48.9022480Z             },
2026-06-15T09:40:48.9022552Z             {
2026-06-15T09:40:48.9022670Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9022751Z               "line": 449
2026-06-15T09:40:48.9022829Z             },
2026-06-15T09:40:48.9022904Z             {
2026-06-15T09:40:48.9023023Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9023110Z               "line": 460
2026-06-15T09:40:48.9023186Z             },
2026-06-15T09:40:48.9023267Z             {
2026-06-15T09:40:48.9023386Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9023472Z               "line": 496
2026-06-15T09:40:48.9023557Z             },
2026-06-15T09:40:48.9023629Z             {
2026-06-15T09:40:48.9023749Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9023830Z               "line": 519
2026-06-15T09:40:48.9023909Z             },
2026-06-15T09:40:48.9023986Z             {
2026-06-15T09:40:48.9024097Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9024187Z               "line": 546
2026-06-15T09:40:48.9024258Z             }
2026-06-15T09:40:48.9024340Z           ]
2026-06-15T09:40:48.9024412Z         }
2026-06-15T09:40:48.9024493Z       }
2026-06-15T09:40:48.9024572Z     },
2026-06-15T09:40:48.9024648Z     {
2026-06-15T09:40:48.9024739Z       "id": "REQ-MESH-2",
2026-06-15T09:40:48.9027274Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T09:40:48.9027383Z       "requiredStages": [
2026-06-15T09:40:48.9027463Z         "impl",
2026-06-15T09:40:48.9027543Z         "unit",
2026-06-15T09:40:48.9027621Z         "int"
2026-06-15T09:40:48.9027702Z       ],
2026-06-15T09:40:48.9027778Z       "stages": {
2026-06-15T09:40:48.9027868Z         "doc": {
2026-06-15T09:40:48.9027959Z           "complete": false,
2026-06-15T09:40:48.9028050Z           "evidence": []
2026-06-15T09:40:48.9028125Z         },
2026-06-15T09:40:48.9028284Z         "impl": {
2026-06-15T09:40:48.9028365Z           "complete": true,
2026-06-15T09:40:48.9028527Z           "evidence": [
2026-06-15T09:40:48.9028603Z             {
2026-06-15T09:40:48.9028722Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9028807Z               "line": 660
2026-06-15T09:40:48.9028885Z             },
2026-06-15T09:40:48.9029032Z             {
2026-06-15T09:40:48.9029151Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9029229Z               "line": 118
2026-06-15T09:40:48.9029308Z             },
2026-06-15T09:40:48.9029384Z             {
2026-06-15T09:40:48.9029504Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9029585Z               "line": 347
2026-06-15T09:40:48.9029661Z             },
2026-06-15T09:40:48.9029736Z             {
2026-06-15T09:40:48.9029846Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9029936Z               "line": 389
2026-06-15T09:40:48.9030011Z             },
2026-06-15T09:40:48.9030086Z             {
2026-06-15T09:40:48.9030206Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9030283Z               "line": 403
2026-06-15T09:40:48.9030363Z             },
2026-06-15T09:40:48.9030435Z             {
2026-06-15T09:40:48.9030550Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9030635Z               "line": 492
2026-06-15T09:40:48.9030720Z             },
2026-06-15T09:40:48.9030798Z             {
2026-06-15T09:40:48.9030903Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9030973Z               "line": 507
2026-06-15T09:40:48.9031044Z             },
2026-06-15T09:40:48.9031123Z             {
2026-06-15T09:40:48.9031232Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9031308Z               "line": 534
2026-06-15T09:40:48.9031384Z             },
2026-06-15T09:40:48.9031466Z             {
2026-06-15T09:40:48.9031589Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9031665Z               "line": 207
2026-06-15T09:40:48.9031747Z             },
2026-06-15T09:40:48.9031823Z             {
2026-06-15T09:40:48.9031942Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9032018Z               "line": 755
2026-06-15T09:40:48.9032091Z             },
2026-06-15T09:40:48.9032171Z             {
2026-06-15T09:40:48.9032285Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9032362Z               "line": 816
2026-06-15T09:40:48.9032439Z             },
2026-06-15T09:40:48.9032514Z             {
2026-06-15T09:40:48.9032632Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9032708Z               "line": 869
2026-06-15T09:40:48.9032784Z             },
2026-06-15T09:40:48.9032859Z             {
2026-06-15T09:40:48.9032963Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9033050Z               "line": 891
2026-06-15T09:40:48.9033122Z             },
2026-06-15T09:40:48.9033197Z             {
2026-06-15T09:40:48.9033312Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9033398Z               "line": 122
2026-06-15T09:40:48.9033469Z             },
2026-06-15T09:40:48.9033550Z             {
2026-06-15T09:40:48.9033655Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9033737Z               "line": 44
2026-06-15T09:40:48.9033813Z             },
2026-06-15T09:40:48.9033888Z             {
2026-06-15T09:40:48.9034004Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9034080Z               "line": 184
2026-06-15T09:40:48.9034156Z             },
2026-06-15T09:40:48.9034231Z             {
2026-06-15T09:40:48.9034333Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9034418Z               "line": 211
2026-06-15T09:40:48.9034499Z             },
2026-06-15T09:40:48.9034671Z             {
2026-06-15T09:40:48.9034771Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9034944Z               "line": 251
2026-06-15T09:40:48.9035024Z             },
2026-06-15T09:40:48.9035104Z             {
2026-06-15T09:40:48.9035199Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9035285Z               "line": 275
2026-06-15T09:40:48.9035370Z             },
2026-06-15T09:40:48.9035449Z             {
2026-06-15T09:40:48.9035558Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9035640Z               "line": 289
2026-06-15T09:40:48.9035722Z             },
2026-06-15T09:40:48.9035806Z             {
2026-06-15T09:40:48.9035907Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9035993Z               "line": 300
2026-06-15T09:40:48.9036074Z             },
2026-06-15T09:40:48.9036159Z             {
2026-06-15T09:40:48.9036265Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9036365Z               "line": 313
2026-06-15T09:40:48.9036436Z             }
2026-06-15T09:40:48.9036507Z           ]
2026-06-15T09:40:48.9036599Z         },
2026-06-15T09:40:48.9036674Z         "int": {
2026-06-15T09:40:48.9036760Z           "complete": true,
2026-06-15T09:40:48.9036841Z           "evidence": [
2026-06-15T09:40:48.9036919Z             {
2026-06-15T09:40:48.9037038Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T09:40:48.9037118Z               "line": 116
2026-06-15T09:40:48.9037200Z             },
2026-06-15T09:40:48.9037281Z             {
2026-06-15T09:40:48.9037404Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T09:40:48.9037481Z               "line": 181
2026-06-15T09:40:48.9037563Z             }
2026-06-15T09:40:48.9037642Z           ]
2026-06-15T09:40:48.9037719Z         },
2026-06-15T09:40:48.9037801Z         "unit": {
2026-06-15T09:40:48.9037887Z           "complete": true,
2026-06-15T09:40:48.9037976Z           "evidence": [
2026-06-15T09:40:48.9038057Z             {
2026-06-15T09:40:48.9038176Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9038272Z               "line": 999
2026-06-15T09:40:48.9038342Z             },
2026-06-15T09:40:48.9038428Z             {
2026-06-15T09:40:48.9038543Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9038633Z               "line": 1016
2026-06-15T09:40:48.9038709Z             },
2026-06-15T09:40:48.9038791Z             {
2026-06-15T09:40:48.9038910Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9039062Z               "line": 1024
2026-06-15T09:40:48.9039154Z             },
2026-06-15T09:40:48.9039225Z             {
2026-06-15T09:40:48.9039334Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9039421Z               "line": 1048
2026-06-15T09:40:48.9039502Z             },
2026-06-15T09:40:48.9039582Z             {
2026-06-15T09:40:48.9039701Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9039798Z               "line": 1499
2026-06-15T09:40:48.9039873Z             },
2026-06-15T09:40:48.9039954Z             {
2026-06-15T09:40:48.9040065Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9040150Z               "line": 347
2026-06-15T09:40:48.9040221Z             },
2026-06-15T09:40:48.9040292Z             {
2026-06-15T09:40:48.9040401Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9040482Z               "line": 370
2026-06-15T09:40:48.9040561Z             },
2026-06-15T09:40:48.9040637Z             {
2026-06-15T09:40:48.9040752Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9040843Z               "line": 407
2026-06-15T09:40:48.9040919Z             },
2026-06-15T09:40:48.9041000Z             {
2026-06-15T09:40:48.9041096Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9041176Z               "line": 431
2026-06-15T09:40:48.9041363Z             },
2026-06-15T09:40:48.9041439Z             {
2026-06-15T09:40:48.9041553Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9041725Z               "line": 483
2026-06-15T09:40:48.9041801Z             },
2026-06-15T09:40:48.9041877Z             {
2026-06-15T09:40:48.9041992Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9042068Z               "line": 499
2026-06-15T09:40:48.9042149Z             },
2026-06-15T09:40:48.9042225Z             {
2026-06-15T09:40:48.9042332Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9042411Z               "line": 514
2026-06-15T09:40:48.9042492Z             },
2026-06-15T09:40:48.9042568Z             {
2026-06-15T09:40:48.9042670Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9042750Z               "line": 531
2026-06-15T09:40:48.9042836Z             }
2026-06-15T09:40:48.9042913Z           ]
2026-06-15T09:40:48.9042994Z         }
2026-06-15T09:40:48.9043088Z       }
2026-06-15T09:40:48.9043168Z     },
2026-06-15T09:40:48.9043244Z     {
2026-06-15T09:40:48.9043340Z       "id": "REQ-MESH-3",
2026-06-15T09:40:48.9044988Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T09:40:48.9045078Z       "requiredStages": [
2026-06-15T09:40:48.9045164Z         "impl",
2026-06-15T09:40:48.9045241Z         "unit",
2026-06-15T09:40:48.9045321Z         "int"
2026-06-15T09:40:48.9045403Z       ],
2026-06-15T09:40:48.9045484Z       "stages": {
2026-06-15T09:40:48.9045570Z         "doc": {
2026-06-15T09:40:48.9045650Z           "complete": false,
2026-06-15T09:40:48.9045745Z           "evidence": []
2026-06-15T09:40:48.9045830Z         },
2026-06-15T09:40:48.9045907Z         "impl": {
2026-06-15T09:40:48.9045995Z           "complete": true,
2026-06-15T09:40:48.9046076Z           "evidence": [
2026-06-15T09:40:48.9046157Z             {
2026-06-15T09:40:48.9046278Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.9046371Z               "line": 641
2026-06-15T09:40:48.9046457Z             }
2026-06-15T09:40:48.9046535Z           ]
2026-06-15T09:40:48.9046621Z         },
2026-06-15T09:40:48.9046700Z         "int": {
2026-06-15T09:40:48.9046797Z           "complete": true,
2026-06-15T09:40:48.9046883Z           "evidence": [
2026-06-15T09:40:48.9046959Z             {
2026-06-15T09:40:48.9047077Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T09:40:48.9047159Z               "line": 373
2026-06-15T09:40:48.9047249Z             },
2026-06-15T09:40:48.9047330Z             {
2026-06-15T09:40:48.9047441Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T09:40:48.9047517Z               "line": 436
2026-06-15T09:40:48.9047593Z             }
2026-06-15T09:40:48.9047678Z           ]
2026-06-15T09:40:48.9047746Z         },
2026-06-15T09:40:48.9047822Z         "unit": {
2026-06-15T09:40:48.9047906Z           "complete": true,
2026-06-15T09:40:48.9047993Z           "evidence": [
2026-06-15T09:40:48.9048066Z             {
2026-06-15T09:40:48.9048175Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.9048270Z               "line": 910
2026-06-15T09:40:48.9048351Z             }
2026-06-15T09:40:48.9048457Z           ]
2026-06-15T09:40:48.9048559Z         }
2026-06-15T09:40:48.9048640Z       }
2026-06-15T09:40:48.9048722Z     },
2026-06-15T09:40:48.9048808Z     {
2026-06-15T09:40:48.9048902Z       "id": "REQ-MESH-4",
2026-06-15T09:40:48.9051145Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T09:40:48.9051450Z       "requiredStages": [
2026-06-15T09:40:48.9051526Z         "impl",
2026-06-15T09:40:48.9051603Z         "unit",
2026-06-15T09:40:48.9051685Z         "int"
2026-06-15T09:40:48.9051760Z       ],
2026-06-15T09:40:48.9051836Z       "stages": {
2026-06-15T09:40:48.9051933Z         "doc": {
2026-06-15T09:40:48.9052018Z           "complete": false,
2026-06-15T09:40:48.9052108Z           "evidence": []
2026-06-15T09:40:48.9052189Z         },
2026-06-15T09:40:48.9052272Z         "impl": {
2026-06-15T09:40:48.9052347Z           "complete": true,
2026-06-15T09:40:48.9052437Z           "evidence": [
2026-06-15T09:40:48.9052518Z             {
2026-06-15T09:40:48.9052642Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.9052728Z               "line": 33
2026-06-15T09:40:48.9052800Z             },
2026-06-15T09:40:48.9052877Z             {
2026-06-15T09:40:48.9052990Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9053081Z               "line": 68
2026-06-15T09:40:48.9053158Z             },
2026-06-15T09:40:48.9053231Z             {
2026-06-15T09:40:48.9053352Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9053434Z               "line": 111
2026-06-15T09:40:48.9053511Z             },
2026-06-15T09:40:48.9053592Z             {
2026-06-15T09:40:48.9053715Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9053814Z               "line": 462
2026-06-15T09:40:48.9053891Z             },
2026-06-15T09:40:48.9053979Z             {
2026-06-15T09:40:48.9054097Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9054184Z               "line": 711
2026-06-15T09:40:48.9054261Z             },
2026-06-15T09:40:48.9054337Z             {
2026-06-15T09:40:48.9054451Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9054533Z               "line": 725
2026-06-15T09:40:48.9054618Z             },
2026-06-15T09:40:48.9054694Z             {
2026-06-15T09:40:48.9054810Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9054895Z               "line": 132
2026-06-15T09:40:48.9054975Z             },
2026-06-15T09:40:48.9055056Z             {
2026-06-15T09:40:48.9055171Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9055252Z               "line": 26
2026-06-15T09:40:48.9055328Z             },
2026-06-15T09:40:48.9055419Z             {
2026-06-15T09:40:48.9055534Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9055619Z               "line": 97
2026-06-15T09:40:48.9055695Z             },
2026-06-15T09:40:48.9055768Z             {
2026-06-15T09:40:48.9055886Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9055968Z               "line": 119
2026-06-15T09:40:48.9056054Z             },
2026-06-15T09:40:48.9056130Z             {
2026-06-15T09:40:48.9056248Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9056338Z               "line": 82
2026-06-15T09:40:48.9056420Z             },
2026-06-15T09:40:48.9056495Z             {
2026-06-15T09:40:48.9056603Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9056684Z               "line": 111
2026-06-15T09:40:48.9056765Z             },
2026-06-15T09:40:48.9056931Z             {
2026-06-15T09:40:48.9057042Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9057176Z               "line": 232
2026-06-15T09:40:48.9057256Z             },
2026-06-15T09:40:48.9057337Z             {
2026-06-15T09:40:48.9057447Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9057538Z               "line": 245
2026-06-15T09:40:48.9057613Z             },
2026-06-15T09:40:48.9057691Z             {
2026-06-15T09:40:48.9057790Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9057871Z               "line": 4218
2026-06-15T09:40:48.9057948Z             }
2026-06-15T09:40:48.9058029Z           ]
2026-06-15T09:40:48.9058105Z         },
2026-06-15T09:40:48.9058186Z         "int": {
2026-06-15T09:40:48.9058282Z           "complete": true,
2026-06-15T09:40:48.9058358Z           "evidence": [
2026-06-15T09:40:48.9058444Z             {
2026-06-15T09:40:48.9058562Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T09:40:48.9058659Z               "line": 98
2026-06-15T09:40:48.9058739Z             },
2026-06-15T09:40:48.9058820Z             {
2026-06-15T09:40:48.9059036Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T09:40:48.9059125Z               "line": 140
2026-06-15T09:40:48.9059200Z             }
2026-06-15T09:40:48.9059272Z           ]
2026-06-15T09:40:48.9059340Z         },
2026-06-15T09:40:48.9059421Z         "unit": {
2026-06-15T09:40:48.9059510Z           "complete": true,
2026-06-15T09:40:48.9059602Z           "evidence": [
2026-06-15T09:40:48.9059669Z             {
2026-06-15T09:40:48.9059796Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.9059873Z               "line": 178
2026-06-15T09:40:48.9059955Z             },
2026-06-15T09:40:48.9060030Z             {
2026-06-15T09:40:48.9060149Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.9060236Z               "line": 242
2026-06-15T09:40:48.9060317Z             },
2026-06-15T09:40:48.9060393Z             {
2026-06-15T09:40:48.9060512Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9060608Z               "line": 1079
2026-06-15T09:40:48.9060683Z             },
2026-06-15T09:40:48.9060760Z             {
2026-06-15T09:40:48.9060871Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9060951Z               "line": 1109
2026-06-15T09:40:48.9061036Z             },
2026-06-15T09:40:48.9061112Z             {
2026-06-15T09:40:48.9061228Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T09:40:48.9061318Z               "line": 1129
2026-06-15T09:40:48.9061393Z             },
2026-06-15T09:40:48.9061483Z             {
2026-06-15T09:40:48.9061612Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T09:40:48.9061696Z               "line": 602
2026-06-15T09:40:48.9061762Z             },
2026-06-15T09:40:48.9061848Z             {
2026-06-15T09:40:48.9061973Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9062048Z               "line": 148
2026-06-15T09:40:48.9062134Z             },
2026-06-15T09:40:48.9062207Z             {
2026-06-15T09:40:48.9062325Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9062416Z               "line": 169
2026-06-15T09:40:48.9062488Z             },
2026-06-15T09:40:48.9062564Z             {
2026-06-15T09:40:48.9062673Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9062764Z               "line": 181
2026-06-15T09:40:48.9062841Z             },
2026-06-15T09:40:48.9062917Z             {
2026-06-15T09:40:48.9063030Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T09:40:48.9063108Z               "line": 202
2026-06-15T09:40:48.9063198Z             },
2026-06-15T09:40:48.9063275Z             {
2026-06-15T09:40:48.9063393Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9063583Z               "line": 375
2026-06-15T09:40:48.9063665Z             },
2026-06-15T09:40:48.9063747Z             {
2026-06-15T09:40:48.9063937Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9064018Z               "line": 407
2026-06-15T09:40:48.9064100Z             },
2026-06-15T09:40:48.9064176Z             {
2026-06-15T09:40:48.9064270Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9064355Z               "line": 8312
2026-06-15T09:40:48.9064446Z             }
2026-06-15T09:40:48.9064525Z           ]
2026-06-15T09:40:48.9064601Z         }
2026-06-15T09:40:48.9064682Z       }
2026-06-15T09:40:48.9064759Z     },
2026-06-15T09:40:48.9064840Z     {
2026-06-15T09:40:48.9064939Z       "id": "REQ-MESH-5",
2026-06-15T09:40:48.9066324Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T09:40:48.9066437Z       "requiredStages": [
2026-06-15T09:40:48.9066523Z         "impl",
2026-06-15T09:40:48.9066605Z         "unit"
2026-06-15T09:40:48.9066691Z       ],
2026-06-15T09:40:48.9066770Z       "stages": {
2026-06-15T09:40:48.9066846Z         "doc": {
2026-06-15T09:40:48.9066941Z           "complete": false,
2026-06-15T09:40:48.9067022Z           "evidence": []
2026-06-15T09:40:48.9067111Z         },
2026-06-15T09:40:48.9067186Z         "impl": {
2026-06-15T09:40:48.9067273Z           "complete": true,
2026-06-15T09:40:48.9067364Z           "evidence": [
2026-06-15T09:40:48.9067440Z             {
2026-06-15T09:40:48.9067564Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9067640Z               "line": 61
2026-06-15T09:40:48.9067726Z             },
2026-06-15T09:40:48.9067811Z             {
2026-06-15T09:40:48.9067927Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9068027Z               "line": 109
2026-06-15T09:40:48.9068107Z             },
2026-06-15T09:40:48.9068178Z             {
2026-06-15T09:40:48.9068289Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9068379Z               "line": 104
2026-06-15T09:40:48.9068460Z             },
2026-06-15T09:40:48.9068541Z             {
2026-06-15T09:40:48.9068656Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9068742Z               "line": 105
2026-06-15T09:40:48.9068827Z             },
2026-06-15T09:40:48.9068905Z             {
2026-06-15T09:40:48.9069099Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9069191Z               "line": 85
2026-06-15T09:40:48.9069262Z             },
2026-06-15T09:40:48.9069351Z             {
2026-06-15T09:40:48.9069477Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9072457Z               "line": 250
2026-06-15T09:40:48.9072580Z             },
2026-06-15T09:40:48.9072666Z             {
2026-06-15T09:40:48.9072805Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9072895Z               "line": 314
2026-06-15T09:40:48.9072976Z             },
2026-06-15T09:40:48.9073053Z             {
2026-06-15T09:40:48.9073186Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9073261Z               "line": 715
2026-06-15T09:40:48.9073339Z             },
2026-06-15T09:40:48.9073416Z             {
2026-06-15T09:40:48.9073529Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.9073620Z               "line": 101
2026-06-15T09:40:48.9073697Z             },
2026-06-15T09:40:48.9073773Z             {
2026-06-15T09:40:48.9073882Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9074139Z               "line": 193
2026-06-15T09:40:48.9074220Z             }
2026-06-15T09:40:48.9074298Z           ]
2026-06-15T09:40:48.9074463Z         },
2026-06-15T09:40:48.9074549Z         "int": {
2026-06-15T09:40:48.9074646Z           "complete": false,
2026-06-15T09:40:48.9074732Z           "evidence": []
2026-06-15T09:40:48.9074806Z         },
2026-06-15T09:40:48.9074882Z         "unit": {
2026-06-15T09:40:48.9074963Z           "complete": true,
2026-06-15T09:40:48.9075053Z           "evidence": [
2026-06-15T09:40:48.9075132Z             {
2026-06-15T09:40:48.9075267Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9075352Z               "line": 957
2026-06-15T09:40:48.9075429Z             },
2026-06-15T09:40:48.9075509Z             {
2026-06-15T09:40:48.9075620Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T09:40:48.9075695Z               "line": 462
2026-06-15T09:40:48.9075776Z             }
2026-06-15T09:40:48.9075862Z           ]
2026-06-15T09:40:48.9075954Z         }
2026-06-15T09:40:48.9076039Z       }
2026-06-15T09:40:48.9076124Z     },
2026-06-15T09:40:48.9076210Z     {
2026-06-15T09:40:48.9076302Z       "id": "REQ-MESH-6",
2026-06-15T09:40:48.9077559Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T09:40:48.9077666Z       "requiredStages": [
2026-06-15T09:40:48.9077747Z         "impl",
2026-06-15T09:40:48.9077819Z         "unit"
2026-06-15T09:40:48.9077900Z       ],
2026-06-15T09:40:48.9077981Z       "stages": {
2026-06-15T09:40:48.9078062Z         "doc": {
2026-06-15T09:40:48.9078143Z           "complete": false,
2026-06-15T09:40:48.9078224Z           "evidence": []
2026-06-15T09:40:48.9078315Z         },
2026-06-15T09:40:48.9078391Z         "impl": {
2026-06-15T09:40:48.9078472Z           "complete": true,
2026-06-15T09:40:48.9078558Z           "evidence": [
2026-06-15T09:40:48.9078634Z             {
2026-06-15T09:40:48.9078743Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9078831Z               "line": 3741
2026-06-15T09:40:48.9078910Z             }
2026-06-15T09:40:48.9079072Z           ]
2026-06-15T09:40:48.9079160Z         },
2026-06-15T09:40:48.9079239Z         "int": {
2026-06-15T09:40:48.9079340Z           "complete": false,
2026-06-15T09:40:48.9079417Z           "evidence": []
2026-06-15T09:40:48.9079493Z         },
2026-06-15T09:40:48.9079578Z         "unit": {
2026-06-15T09:40:48.9079654Z           "complete": true,
2026-06-15T09:40:48.9079736Z           "evidence": [
2026-06-15T09:40:48.9079808Z             {
2026-06-15T09:40:48.9079911Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9079988Z               "line": 8842
2026-06-15T09:40:48.9080065Z             },
2026-06-15T09:40:48.9080151Z             {
2026-06-15T09:40:48.9080259Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9080344Z               "line": 8869
2026-06-15T09:40:48.9080426Z             },
2026-06-15T09:40:48.9080503Z             {
2026-06-15T09:40:48.9080602Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9080678Z               "line": 8893
2026-06-15T09:40:48.9080755Z             }
2026-06-15T09:40:48.9080836Z           ]
2026-06-15T09:40:48.9080912Z         }
2026-06-15T09:40:48.9080983Z       }
2026-06-15T09:40:48.9081056Z     },
2026-06-15T09:40:48.9081132Z     {
2026-06-15T09:40:48.9081227Z       "id": "REQ-MIGRATE-1",
2026-06-15T09:40:48.9081404Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T09:40:48.9081499Z       "requiredStages": [],
2026-06-15T09:40:48.9081580Z       "stages": {
2026-06-15T09:40:48.9081651Z         "doc": {
2026-06-15T09:40:48.9081742Z           "complete": false,
2026-06-15T09:40:48.9081957Z           "evidence": []
2026-06-15T09:40:48.9082043Z         },
2026-06-15T09:40:48.9082214Z         "impl": {
2026-06-15T09:40:48.9082300Z           "complete": false,
2026-06-15T09:40:48.9082377Z           "evidence": []
2026-06-15T09:40:48.9082457Z         },
2026-06-15T09:40:48.9082527Z         "int": {
2026-06-15T09:40:48.9082608Z           "complete": false,
2026-06-15T09:40:48.9082699Z           "evidence": []
2026-06-15T09:40:48.9082779Z         },
2026-06-15T09:40:48.9082854Z         "unit": {
2026-06-15T09:40:48.9082945Z           "complete": false,
2026-06-15T09:40:48.9083027Z           "evidence": []
2026-06-15T09:40:48.9083107Z         }
2026-06-15T09:40:48.9083183Z       }
2026-06-15T09:40:48.9083259Z     },
2026-06-15T09:40:48.9083332Z     {
2026-06-15T09:40:48.9083413Z       "id": "REQ-MSG-1",
2026-06-15T09:40:48.9083836Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T09:40:48.9083933Z       "requiredStages": [
2026-06-15T09:40:48.9084028Z         "impl",
2026-06-15T09:40:48.9084104Z         "unit",
2026-06-15T09:40:48.9084180Z         "int"
2026-06-15T09:40:48.9084257Z       ],
2026-06-15T09:40:48.9084342Z       "stages": {
2026-06-15T09:40:48.9084418Z         "doc": {
2026-06-15T09:40:48.9084499Z           "complete": false,
2026-06-15T09:40:48.9084586Z           "evidence": []
2026-06-15T09:40:48.9084666Z         },
2026-06-15T09:40:48.9084743Z         "impl": {
2026-06-15T09:40:48.9084834Z           "complete": true,
2026-06-15T09:40:48.9084920Z           "evidence": [
2026-06-15T09:40:48.9085000Z             {
2026-06-15T09:40:48.9085114Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9085202Z               "line": 28
2026-06-15T09:40:48.9085282Z             },
2026-06-15T09:40:48.9085357Z             {
2026-06-15T09:40:48.9085470Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9085547Z               "line": 94
2026-06-15T09:40:48.9085632Z             },
2026-06-15T09:40:48.9085716Z             {
2026-06-15T09:40:48.9085827Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9085908Z               "line": 127
2026-06-15T09:40:48.9085998Z             },
2026-06-15T09:40:48.9086079Z             {
2026-06-15T09:40:48.9086185Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9086275Z               "line": 149
2026-06-15T09:40:48.9086355Z             },
2026-06-15T09:40:48.9086427Z             {
2026-06-15T09:40:48.9086528Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9086619Z               "line": 174
2026-06-15T09:40:48.9086698Z             },
2026-06-15T09:40:48.9086770Z             {
2026-06-15T09:40:48.9086881Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9086971Z               "line": 18
2026-06-15T09:40:48.9087052Z             },
2026-06-15T09:40:48.9087143Z             {
2026-06-15T09:40:48.9087242Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.9087323Z               "line": 13
2026-06-15T09:40:48.9087405Z             },
2026-06-15T09:40:48.9087487Z             {
2026-06-15T09:40:48.9087580Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.9087672Z               "line": 62
2026-06-15T09:40:48.9087749Z             },
2026-06-15T09:40:48.9087825Z             {
2026-06-15T09:40:48.9087924Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9088009Z               "line": 13
2026-06-15T09:40:48.9088090Z             }
2026-06-15T09:40:48.9088166Z           ]
2026-06-15T09:40:48.9088240Z         },
2026-06-15T09:40:48.9088321Z         "int": {
2026-06-15T09:40:48.9088407Z           "complete": true,
2026-06-15T09:40:48.9088499Z           "evidence": [
2026-06-15T09:40:48.9088574Z             {
2026-06-15T09:40:48.9088703Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:40:48.9088866Z               "line": 9
2026-06-15T09:40:48.9089008Z             },
2026-06-15T09:40:48.9089190Z             {
2026-06-15T09:40:48.9089318Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:40:48.9089414Z               "line": 56
2026-06-15T09:40:48.9089494Z             },
2026-06-15T09:40:48.9089575Z             {
2026-06-15T09:40:48.9089696Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:40:48.9089785Z               "line": 113
2026-06-15T09:40:48.9089866Z             }
2026-06-15T09:40:48.9089947Z           ]
2026-06-15T09:40:48.9090035Z         },
2026-06-15T09:40:48.9090109Z         "unit": {
2026-06-15T09:40:48.9090200Z           "complete": true,
2026-06-15T09:40:48.9090282Z           "evidence": [
2026-06-15T09:40:48.9090354Z             {
2026-06-15T09:40:48.9090467Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9090553Z               "line": 203
2026-06-15T09:40:48.9090635Z             },
2026-06-15T09:40:48.9090716Z             {
2026-06-15T09:40:48.9090814Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9090899Z               "line": 232
2026-06-15T09:40:48.9090982Z             },
2026-06-15T09:40:48.9091054Z             {
2026-06-15T09:40:48.9091157Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9091238Z               "line": 277
2026-06-15T09:40:48.9091311Z             },
2026-06-15T09:40:48.9091397Z             {
2026-06-15T09:40:48.9091486Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9091577Z               "line": 300
2026-06-15T09:40:48.9091659Z             },
2026-06-15T09:40:48.9091726Z             {
2026-06-15T09:40:48.9091835Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T09:40:48.9091911Z               "line": 325
2026-06-15T09:40:48.9091992Z             },
2026-06-15T09:40:48.9092068Z             {
2026-06-15T09:40:48.9092187Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9092284Z               "line": 204
2026-06-15T09:40:48.9092364Z             },
2026-06-15T09:40:48.9092450Z             {
2026-06-15T09:40:48.9092556Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9092641Z               "line": 237
2026-06-15T09:40:48.9092721Z             },
2026-06-15T09:40:48.9092803Z             {
2026-06-15T09:40:48.9092900Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9092984Z               "line": 251
2026-06-15T09:40:48.9093069Z             },
2026-06-15T09:40:48.9093149Z             {
2026-06-15T09:40:48.9093254Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9093343Z               "line": 263
2026-06-15T09:40:48.9093419Z             },
2026-06-15T09:40:48.9093500Z             {
2026-06-15T09:40:48.9093592Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.9093677Z               "line": 162
2026-06-15T09:40:48.9093752Z             },
2026-06-15T09:40:48.9093844Z             {
2026-06-15T09:40:48.9093949Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T09:40:48.9094039Z               "line": 242
2026-06-15T09:40:48.9094115Z             },
2026-06-15T09:40:48.9094187Z             {
2026-06-15T09:40:48.9094297Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9094377Z               "line": 134
2026-06-15T09:40:48.9094459Z             },
2026-06-15T09:40:48.9094536Z             {
2026-06-15T09:40:48.9094635Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9094725Z               "line": 153
2026-06-15T09:40:48.9094803Z             }
2026-06-15T09:40:48.9094883Z           ]
2026-06-15T09:40:48.9094964Z         }
2026-06-15T09:40:48.9095045Z       }
2026-06-15T09:40:48.9095118Z     },
2026-06-15T09:40:48.9095189Z     {
2026-06-15T09:40:48.9095283Z       "id": "REQ-MSG-2",
2026-06-15T09:40:48.9095541Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T09:40:48.9095747Z       "requiredStages": [
2026-06-15T09:40:48.9095889Z         "impl",
2026-06-15T09:40:48.9095964Z         "unit"
2026-06-15T09:40:48.9096050Z       ],
2026-06-15T09:40:48.9096126Z       "stages": {
2026-06-15T09:40:48.9096201Z         "doc": {
2026-06-15T09:40:48.9096281Z           "complete": false,
2026-06-15T09:40:48.9096377Z           "evidence": []
2026-06-15T09:40:48.9096454Z         },
2026-06-15T09:40:48.9096530Z         "impl": {
2026-06-15T09:40:48.9096619Z           "complete": true,
2026-06-15T09:40:48.9096696Z           "evidence": [
2026-06-15T09:40:48.9096783Z             {
2026-06-15T09:40:48.9096883Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9096972Z               "line": 11
2026-06-15T09:40:48.9097055Z             },
2026-06-15T09:40:48.9097136Z             {
2026-06-15T09:40:48.9097240Z               "path": "crates/spt/src/main.rs",
2026-06-15T09:40:48.9097321Z               "line": 8
2026-06-15T09:40:48.9097408Z             }
2026-06-15T09:40:48.9097478Z           ]
2026-06-15T09:40:48.9097555Z         },
2026-06-15T09:40:48.9097645Z         "int": {
2026-06-15T09:40:48.9097737Z           "complete": false,
2026-06-15T09:40:48.9097817Z           "evidence": []
2026-06-15T09:40:48.9097893Z         },
2026-06-15T09:40:48.9097975Z         "unit": {
2026-06-15T09:40:48.9098066Z           "complete": true,
2026-06-15T09:40:48.9098145Z           "evidence": [
2026-06-15T09:40:48.9098227Z             {
2026-06-15T09:40:48.9098328Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9098409Z               "line": 6217
2026-06-15T09:40:48.9098488Z             },
2026-06-15T09:40:48.9098569Z             {
2026-06-15T09:40:48.9098664Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9098750Z               "line": 6259
2026-06-15T09:40:48.9098819Z             },
2026-06-15T09:40:48.9098896Z             {
2026-06-15T09:40:48.9099079Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9099158Z               "line": 6308
2026-06-15T09:40:48.9099239Z             },
2026-06-15T09:40:48.9099331Z             {
2026-06-15T09:40:48.9099426Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9099506Z               "line": 6331
2026-06-15T09:40:48.9099583Z             },
2026-06-15T09:40:48.9099660Z             {
2026-06-15T09:40:48.9099755Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9099830Z               "line": 8067
2026-06-15T09:40:48.9099908Z             },
2026-06-15T09:40:48.9099989Z             {
2026-06-15T09:40:48.9100074Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9100164Z               "line": 8076
2026-06-15T09:40:48.9100246Z             },
2026-06-15T09:40:48.9100327Z             {
2026-06-15T09:40:48.9100427Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9100512Z               "line": 8090
2026-06-15T09:40:48.9100585Z             }
2026-06-15T09:40:48.9100665Z           ]
2026-06-15T09:40:48.9100741Z         }
2026-06-15T09:40:48.9100818Z       }
2026-06-15T09:40:48.9100890Z     },
2026-06-15T09:40:48.9100971Z     {
2026-06-15T09:40:48.9101046Z       "id": "REQ-MSG-3",
2026-06-15T09:40:48.9101422Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T09:40:48.9101513Z       "requiredStages": [
2026-06-15T09:40:48.9101594Z         "impl",
2026-06-15T09:40:48.9101670Z         "unit",
2026-06-15T09:40:48.9101746Z         "int"
2026-06-15T09:40:48.9101832Z       ],
2026-06-15T09:40:48.9101937Z       "stages": {
2026-06-15T09:40:48.9102018Z         "doc": {
2026-06-15T09:40:48.9102099Z           "complete": false,
2026-06-15T09:40:48.9102191Z           "evidence": []
2026-06-15T09:40:48.9102271Z         },
2026-06-15T09:40:48.9102351Z         "impl": {
2026-06-15T09:40:48.9102443Z           "complete": true,
2026-06-15T09:40:48.9102525Z           "evidence": [
2026-06-15T09:40:48.9102709Z             {
2026-06-15T09:40:48.9102820Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T09:40:48.9102991Z               "line": 19
2026-06-15T09:40:48.9103072Z             },
2026-06-15T09:40:48.9103150Z             {
2026-06-15T09:40:48.9103248Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9103334Z               "line": 21
2026-06-15T09:40:48.9103411Z             },
2026-06-15T09:40:48.9103493Z             {
2026-06-15T09:40:48.9103601Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9103681Z               "line": 48
2026-06-15T09:40:48.9103757Z             },
2026-06-15T09:40:48.9103833Z             {
2026-06-15T09:40:48.9103932Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9104012Z               "line": 151
2026-06-15T09:40:48.9104094Z             }
2026-06-15T09:40:48.9104176Z           ]
2026-06-15T09:40:48.9104256Z         },
2026-06-15T09:40:48.9104336Z         "int": {
2026-06-15T09:40:48.9104438Z           "complete": true,
2026-06-15T09:40:48.9104514Z           "evidence": [
2026-06-15T09:40:48.9104599Z             {
2026-06-15T09:40:48.9104734Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:40:48.9104809Z               "line": 10
2026-06-15T09:40:48.9104885Z             },
2026-06-15T09:40:48.9104966Z             {
2026-06-15T09:40:48.9105096Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T09:40:48.9105181Z               "line": 56
2026-06-15T09:40:48.9105262Z             }
2026-06-15T09:40:48.9105343Z           ]
2026-06-15T09:40:48.9105425Z         },
2026-06-15T09:40:48.9105505Z         "unit": {
2026-06-15T09:40:48.9105586Z           "complete": true,
2026-06-15T09:40:48.9105663Z           "evidence": [
2026-06-15T09:40:48.9105744Z             {
2026-06-15T09:40:48.9105843Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9105934Z               "line": 205
2026-06-15T09:40:48.9106017Z             },
2026-06-15T09:40:48.9106106Z             {
2026-06-15T09:40:48.9106206Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9106293Z               "line": 224
2026-06-15T09:40:48.9106374Z             },
2026-06-15T09:40:48.9106458Z             {
2026-06-15T09:40:48.9106562Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T09:40:48.9106654Z               "line": 247
2026-06-15T09:40:48.9106738Z             }
2026-06-15T09:40:48.9106813Z           ]
2026-06-15T09:40:48.9106894Z         }
2026-06-15T09:40:48.9106971Z       }
2026-06-15T09:40:48.9107052Z     },
2026-06-15T09:40:48.9107118Z     {
2026-06-15T09:40:48.9107208Z       "id": "REQ-MSG-4",
2026-06-15T09:40:48.9108015Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T09:40:48.9108110Z       "requiredStages": [
2026-06-15T09:40:48.9108201Z         "impl",
2026-06-15T09:40:48.9108273Z         "unit",
2026-06-15T09:40:48.9108363Z         "int"
2026-06-15T09:40:48.9108449Z       ],
2026-06-15T09:40:48.9108521Z       "stages": {
2026-06-15T09:40:48.9108602Z         "doc": {
2026-06-15T09:40:48.9108692Z           "complete": false,
2026-06-15T09:40:48.9108782Z           "evidence": []
2026-06-15T09:40:48.9108860Z         },
2026-06-15T09:40:48.9109011Z         "impl": {
2026-06-15T09:40:48.9109096Z           "complete": true,
2026-06-15T09:40:48.9109177Z           "evidence": [
2026-06-15T09:40:48.9109253Z             {
2026-06-15T09:40:48.9109361Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9109451Z               "line": 19
2026-06-15T09:40:48.9109528Z             },
2026-06-15T09:40:48.9109609Z             {
2026-06-15T09:40:48.9109709Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9109794Z               "line": 46
2026-06-15T09:40:48.9109986Z             },
2026-06-15T09:40:48.9110066Z             {
2026-06-15T09:40:48.9110177Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9110348Z               "line": 409
2026-06-15T09:40:48.9110429Z             },
2026-06-15T09:40:48.9110511Z             {
2026-06-15T09:40:48.9110610Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9110691Z               "line": 2712
2026-06-15T09:40:48.9110772Z             }
2026-06-15T09:40:48.9110850Z           ]
2026-06-15T09:40:48.9110929Z         },
2026-06-15T09:40:48.9111010Z         "int": {
2026-06-15T09:40:48.9111102Z           "complete": true,
2026-06-15T09:40:48.9111179Z           "evidence": [
2026-06-15T09:40:48.9111263Z             {
2026-06-15T09:40:48.9111383Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:40:48.9111460Z               "line": 98
2026-06-15T09:40:48.9111540Z             },
2026-06-15T09:40:48.9111616Z             {
2026-06-15T09:40:48.9111732Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T09:40:48.9111827Z               "line": 128
2026-06-15T09:40:48.9111911Z             }
2026-06-15T09:40:48.9111987Z           ]
2026-06-15T09:40:48.9112068Z         },
2026-06-15T09:40:48.9112145Z         "unit": {
2026-06-15T09:40:48.9112240Z           "complete": true,
2026-06-15T09:40:48.9112325Z           "evidence": [
2026-06-15T09:40:48.9112397Z             {
2026-06-15T09:40:48.9112517Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9112592Z               "line": 68
2026-06-15T09:40:48.9112673Z             },
2026-06-15T09:40:48.9112751Z             {
2026-06-15T09:40:48.9112851Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9112940Z               "line": 79
2026-06-15T09:40:48.9113017Z             },
2026-06-15T09:40:48.9113099Z             {
2026-06-15T09:40:48.9113194Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9113269Z               "line": 90
2026-06-15T09:40:48.9113352Z             },
2026-06-15T09:40:48.9113433Z             {
2026-06-15T09:40:48.9113537Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9113627Z               "line": 151
2026-06-15T09:40:48.9113710Z             }
2026-06-15T09:40:48.9113785Z           ]
2026-06-15T09:40:48.9113866Z         }
2026-06-15T09:40:48.9113947Z       }
2026-06-15T09:40:48.9114034Z     },
2026-06-15T09:40:48.9114114Z     {
2026-06-15T09:40:48.9114194Z       "id": "REQ-MSG-5",
2026-06-15T09:40:48.9114896Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T09:40:48.9114988Z       "requiredStages": [
2026-06-15T09:40:48.9115074Z         "doc",
2026-06-15T09:40:48.9115164Z         "impl",
2026-06-15T09:40:48.9115250Z         "unit"
2026-06-15T09:40:48.9115332Z       ],
2026-06-15T09:40:48.9115413Z       "stages": {
2026-06-15T09:40:48.9115493Z         "doc": {
2026-06-15T09:40:48.9115589Z           "complete": true,
2026-06-15T09:40:48.9115679Z           "evidence": [
2026-06-15T09:40:48.9115756Z             {
2026-06-15T09:40:48.9115850Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9115928Z               "line": 212
2026-06-15T09:40:48.9116003Z             }
2026-06-15T09:40:48.9116075Z           ]
2026-06-15T09:40:48.9116156Z         },
2026-06-15T09:40:48.9116233Z         "impl": {
2026-06-15T09:40:48.9116323Z           "complete": true,
2026-06-15T09:40:48.9116409Z           "evidence": [
2026-06-15T09:40:48.9116499Z             {
2026-06-15T09:40:48.9116610Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.9116699Z               "line": 60
2026-06-15T09:40:48.9116781Z             },
2026-06-15T09:40:48.9116863Z             {
2026-06-15T09:40:48.9116976Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9117137Z               "line": 118
2026-06-15T09:40:48.9117218Z             },
2026-06-15T09:40:48.9117298Z             {
2026-06-15T09:40:48.9117478Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9117564Z               "line": 127
2026-06-15T09:40:48.9117641Z             },
2026-06-15T09:40:48.9117726Z             {
2026-06-15T09:40:48.9117821Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9117913Z               "line": 141
2026-06-15T09:40:48.9117993Z             },
2026-06-15T09:40:48.9118078Z             {
2026-06-15T09:40:48.9118180Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9118275Z               "line": 170
2026-06-15T09:40:48.9118355Z             },
2026-06-15T09:40:48.9118427Z             {
2026-06-15T09:40:48.9118532Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9118608Z               "line": 2458
2026-06-15T09:40:48.9118694Z             }
2026-06-15T09:40:48.9118771Z           ]
2026-06-15T09:40:48.9118857Z         },
2026-06-15T09:40:48.9118933Z         "int": {
2026-06-15T09:40:48.9119100Z           "complete": true,
2026-06-15T09:40:48.9119186Z           "evidence": [
2026-06-15T09:40:48.9119285Z             {
2026-06-15T09:40:48.9119468Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T09:40:48.9119590Z               "line": 19
2026-06-15T09:40:48.9119708Z             }
2026-06-15T09:40:48.9119823Z           ]
2026-06-15T09:40:48.9119898Z         },
2026-06-15T09:40:48.9119982Z         "unit": {
2026-06-15T09:40:48.9120074Z           "complete": true,
2026-06-15T09:40:48.9120160Z           "evidence": [
2026-06-15T09:40:48.9120236Z             {
2026-06-15T09:40:48.9120350Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.9120437Z               "line": 192
2026-06-15T09:40:48.9120508Z             },
2026-06-15T09:40:48.9120607Z             {
2026-06-15T09:40:48.9120742Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:40:48.9120841Z               "line": 154
2026-06-15T09:40:48.9120945Z             },
2026-06-15T09:40:48.9121023Z             {
2026-06-15T09:40:48.9121142Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9121228Z               "line": 122
2026-06-15T09:40:48.9121304Z             },
2026-06-15T09:40:48.9121381Z             {
2026-06-15T09:40:48.9121494Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9121580Z               "line": 444
2026-06-15T09:40:48.9121662Z             },
2026-06-15T09:40:48.9121739Z             {
2026-06-15T09:40:48.9121842Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9121928Z               "line": 493
2026-06-15T09:40:48.9122011Z             },
2026-06-15T09:40:48.9122086Z             {
2026-06-15T09:40:48.9122196Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9122268Z               "line": 509
2026-06-15T09:40:48.9122344Z             },
2026-06-15T09:40:48.9122425Z             {
2026-06-15T09:40:48.9122538Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T09:40:48.9122623Z               "line": 528
2026-06-15T09:40:48.9122701Z             },
2026-06-15T09:40:48.9122782Z             {
2026-06-15T09:40:48.9122885Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9122972Z               "line": 6160
2026-06-15T09:40:48.9123053Z             }
2026-06-15T09:40:48.9123139Z           ]
2026-06-15T09:40:48.9123214Z         }
2026-06-15T09:40:48.9123292Z       }
2026-06-15T09:40:48.9123373Z     },
2026-06-15T09:40:48.9123444Z     {
2026-06-15T09:40:48.9123534Z       "id": "REQ-MSG-6",
2026-06-15T09:40:48.9125081Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T09:40:48.9125376Z       "requiredStages": [
2026-06-15T09:40:48.9125461Z         "doc",
2026-06-15T09:40:48.9125543Z         "impl",
2026-06-15T09:40:48.9125624Z         "unit"
2026-06-15T09:40:48.9125695Z       ],
2026-06-15T09:40:48.9125776Z       "stages": {
2026-06-15T09:40:48.9125854Z         "doc": {
2026-06-15T09:40:48.9125944Z           "complete": true,
2026-06-15T09:40:48.9126029Z           "evidence": [
2026-06-15T09:40:48.9126101Z             {
2026-06-15T09:40:48.9126197Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9126282Z               "line": 215
2026-06-15T09:40:48.9126367Z             }
2026-06-15T09:40:48.9126449Z           ]
2026-06-15T09:40:48.9126531Z         },
2026-06-15T09:40:48.9126621Z         "impl": {
2026-06-15T09:40:48.9126706Z           "complete": true,
2026-06-15T09:40:48.9126798Z           "evidence": [
2026-06-15T09:40:48.9126874Z             {
2026-06-15T09:40:48.9127002Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9127099Z               "line": 177
2026-06-15T09:40:48.9127185Z             },
2026-06-15T09:40:48.9127259Z             {
2026-06-15T09:40:48.9127379Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9127476Z               "line": 422
2026-06-15T09:40:48.9127574Z             },
2026-06-15T09:40:48.9127655Z             {
2026-06-15T09:40:48.9127778Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9127863Z               "line": 445
2026-06-15T09:40:48.9127943Z             },
2026-06-15T09:40:48.9128014Z             {
2026-06-15T09:40:48.9128125Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.9128201Z               "line": 89
2026-06-15T09:40:48.9128281Z             },
2026-06-15T09:40:48.9128357Z             {
2026-06-15T09:40:48.9128478Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9128567Z               "line": 155
2026-06-15T09:40:48.9128657Z             }
2026-06-15T09:40:48.9128740Z           ]
2026-06-15T09:40:48.9128811Z         },
2026-06-15T09:40:48.9128896Z         "int": {
2026-06-15T09:40:48.9129074Z           "complete": false,
2026-06-15T09:40:48.9129149Z           "evidence": []
2026-06-15T09:40:48.9129230Z         },
2026-06-15T09:40:48.9129311Z         "unit": {
2026-06-15T09:40:48.9129403Z           "complete": true,
2026-06-15T09:40:48.9129488Z           "evidence": [
2026-06-15T09:40:48.9129564Z             {
2026-06-15T09:40:48.9129685Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9129760Z               "line": 1639
2026-06-15T09:40:48.9129845Z             },
2026-06-15T09:40:48.9129917Z             {
2026-06-15T09:40:48.9130024Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.9130108Z               "line": 219
2026-06-15T09:40:48.9130198Z             }
2026-06-15T09:40:48.9130278Z           ]
2026-06-15T09:40:48.9130360Z         }
2026-06-15T09:40:48.9130444Z       }
2026-06-15T09:40:48.9130524Z     },
2026-06-15T09:40:48.9130605Z     {
2026-06-15T09:40:48.9130701Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T09:40:48.9133380Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY delivery surface — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T09:40:48.9133689Z       "requiredStages": [
2026-06-15T09:40:48.9133774Z         "doc",
2026-06-15T09:40:48.9133852Z         "impl",
2026-06-15T09:40:48.9133933Z         "unit",
2026-06-15T09:40:48.9134009Z         "int"
2026-06-15T09:40:48.9134089Z       ],
2026-06-15T09:40:48.9134167Z       "stages": {
2026-06-15T09:40:48.9134243Z         "doc": {
2026-06-15T09:40:48.9134338Z           "complete": true,
2026-06-15T09:40:48.9134418Z           "evidence": [
2026-06-15T09:40:48.9134496Z             {
2026-06-15T09:40:48.9134723Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T09:40:48.9134811Z               "line": 47
2026-06-15T09:40:48.9134896Z             }
2026-06-15T09:40:48.9134971Z           ]
2026-06-15T09:40:48.9135048Z         },
2026-06-15T09:40:48.9135145Z         "impl": {
2026-06-15T09:40:48.9135229Z           "complete": true,
2026-06-15T09:40:48.9135324Z           "evidence": [
2026-06-15T09:40:48.9135399Z             {
2026-06-15T09:40:48.9135505Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9135589Z               "line": 20
2026-06-15T09:40:48.9135669Z             },
2026-06-15T09:40:48.9135746Z             {
2026-06-15T09:40:48.9135851Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9135927Z               "line": 33
2026-06-15T09:40:48.9136017Z             },
2026-06-15T09:40:48.9136103Z             {
2026-06-15T09:40:48.9136209Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9136298Z               "line": 47
2026-06-15T09:40:48.9136375Z             },
2026-06-15T09:40:48.9136462Z             {
2026-06-15T09:40:48.9136566Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9136656Z               "line": 58
2026-06-15T09:40:48.9136738Z             },
2026-06-15T09:40:48.9136823Z             {
2026-06-15T09:40:48.9136932Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9137019Z               "line": 14
2026-06-15T09:40:48.9137106Z             },
2026-06-15T09:40:48.9137176Z             {
2026-06-15T09:40:48.9137276Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9137354Z               "line": 27
2026-06-15T09:40:48.9137430Z             },
2026-06-15T09:40:48.9137509Z             {
2026-06-15T09:40:48.9137610Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9137697Z               "line": 40
2026-06-15T09:40:48.9137777Z             },
2026-06-15T09:40:48.9137863Z             {
2026-06-15T09:40:48.9137978Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.9138055Z               "line": 92
2026-06-15T09:40:48.9138130Z             },
2026-06-15T09:40:48.9138200Z             {
2026-06-15T09:40:48.9141155Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9141271Z               "line": 143
2026-06-15T09:40:48.9141351Z             },
2026-06-15T09:40:48.9141437Z             {
2026-06-15T09:40:48.9141557Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9141643Z               "line": 201
2026-06-15T09:40:48.9141718Z             },
2026-06-15T09:40:48.9141799Z             {
2026-06-15T09:40:48.9141914Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9142000Z               "line": 410
2026-06-15T09:40:48.9142080Z             },
2026-06-15T09:40:48.9142158Z             {
2026-06-15T09:40:48.9142267Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T09:40:48.9142338Z               "line": 78
2026-06-15T09:40:48.9142419Z             },
2026-06-15T09:40:48.9142502Z             {
2026-06-15T09:40:48.9142605Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9142691Z               "line": 2713
2026-06-15T09:40:48.9142768Z             }
2026-06-15T09:40:48.9142977Z           ]
2026-06-15T09:40:48.9143053Z         },
2026-06-15T09:40:48.9143131Z         "int": {
2026-06-15T09:40:48.9143321Z           "complete": true,
2026-06-15T09:40:48.9143403Z           "evidence": [
2026-06-15T09:40:48.9143778Z             {
2026-06-15T09:40:48.9143916Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T09:40:48.9143991Z               "line": 15
2026-06-15T09:40:48.9144083Z             }
2026-06-15T09:40:48.9144174Z           ]
2026-06-15T09:40:48.9144249Z         },
2026-06-15T09:40:48.9144325Z         "unit": {
2026-06-15T09:40:48.9144417Z           "complete": true,
2026-06-15T09:40:48.9144503Z           "evidence": [
2026-06-15T09:40:48.9144583Z             {
2026-06-15T09:40:48.9144679Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9144765Z               "line": 102
2026-06-15T09:40:48.9144846Z             },
2026-06-15T09:40:48.9144917Z             {
2026-06-15T09:40:48.9145022Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T09:40:48.9145123Z               "line": 137
2026-06-15T09:40:48.9145227Z             },
2026-06-15T09:40:48.9145323Z             {
2026-06-15T09:40:48.9145432Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9145513Z               "line": 98
2026-06-15T09:40:48.9145589Z             },
2026-06-15T09:40:48.9145661Z             {
2026-06-15T09:40:48.9145766Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9145846Z               "line": 106
2026-06-15T09:40:48.9145927Z             },
2026-06-15T09:40:48.9145998Z             {
2026-06-15T09:40:48.9146098Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9146173Z               "line": 113
2026-06-15T09:40:48.9146243Z             },
2026-06-15T09:40:48.9146325Z             {
2026-06-15T09:40:48.9146426Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T09:40:48.9146511Z               "line": 122
2026-06-15T09:40:48.9146596Z             }
2026-06-15T09:40:48.9146678Z           ]
2026-06-15T09:40:48.9146759Z         }
2026-06-15T09:40:48.9146835Z       }
2026-06-15T09:40:48.9146906Z     },
2026-06-15T09:40:48.9146993Z     {
2026-06-15T09:40:48.9147069Z       "id": "REQ-NET-1",
2026-06-15T09:40:48.9147250Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T09:40:48.9147341Z       "requiredStages": [
2026-06-15T09:40:48.9147422Z         "impl",
2026-06-15T09:40:48.9147502Z         "unit",
2026-06-15T09:40:48.9147584Z         "int"
2026-06-15T09:40:48.9147661Z       ],
2026-06-15T09:40:48.9147741Z       "stages": {
2026-06-15T09:40:48.9147822Z         "doc": {
2026-06-15T09:40:48.9147914Z           "complete": false,
2026-06-15T09:40:48.9147995Z           "evidence": []
2026-06-15T09:40:48.9148074Z         },
2026-06-15T09:40:48.9148151Z         "impl": {
2026-06-15T09:40:48.9148243Z           "complete": true,
2026-06-15T09:40:48.9148319Z           "evidence": [
2026-06-15T09:40:48.9148403Z             {
2026-06-15T09:40:48.9148519Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9148605Z               "line": 54
2026-06-15T09:40:48.9148690Z             },
2026-06-15T09:40:48.9148765Z             {
2026-06-15T09:40:48.9148889Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9149049Z               "line": 594
2026-06-15T09:40:48.9149130Z             },
2026-06-15T09:40:48.9149202Z             {
2026-06-15T09:40:48.9149302Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T09:40:48.9149387Z               "line": 130
2026-06-15T09:40:48.9149464Z             },
2026-06-15T09:40:48.9149541Z             {
2026-06-15T09:40:48.9149646Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9149730Z               "line": 97
2026-06-15T09:40:48.9149812Z             },
2026-06-15T09:40:48.9149884Z             {
2026-06-15T09:40:48.9149999Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9150074Z               "line": 159
2026-06-15T09:40:48.9150260Z             },
2026-06-15T09:40:48.9150341Z             {
2026-06-15T09:40:48.9150456Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9150631Z               "line": 175
2026-06-15T09:40:48.9150708Z             },
2026-06-15T09:40:48.9150791Z             {
2026-06-15T09:40:48.9150895Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9150980Z               "line": 190
2026-06-15T09:40:48.9151052Z             },
2026-06-15T09:40:48.9151129Z             {
2026-06-15T09:40:48.9151242Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9151318Z               "line": 271
2026-06-15T09:40:48.9151398Z             },
2026-06-15T09:40:48.9151475Z             {
2026-06-15T09:40:48.9151587Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9151663Z               "line": 306
2026-06-15T09:40:48.9151745Z             },
2026-06-15T09:40:48.9151826Z             {
2026-06-15T09:40:48.9151945Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9152030Z               "line": 312
2026-06-15T09:40:48.9152113Z             },
2026-06-15T09:40:48.9152193Z             {
2026-06-15T09:40:48.9152307Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9152389Z               "line": 318
2026-06-15T09:40:48.9152465Z             },
2026-06-15T09:40:48.9152541Z             {
2026-06-15T09:40:48.9152655Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9152728Z               "line": 334
2026-06-15T09:40:48.9152813Z             },
2026-06-15T09:40:48.9152889Z             {
2026-06-15T09:40:48.9152984Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9153071Z               "line": 354
2026-06-15T09:40:48.9153146Z             },
2026-06-15T09:40:48.9153227Z             {
2026-06-15T09:40:48.9153343Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.9153424Z               "line": 35
2026-06-15T09:40:48.9153503Z             },
2026-06-15T09:40:48.9153570Z             {
2026-06-15T09:40:48.9153681Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.9153762Z               "line": 85
2026-06-15T09:40:48.9153842Z             },
2026-06-15T09:40:48.9153914Z             {
2026-06-15T09:40:48.9154030Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.9154109Z               "line": 138
2026-06-15T09:40:48.9154190Z             },
2026-06-15T09:40:48.9154265Z             {
2026-06-15T09:40:48.9154366Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9154457Z               "line": 2555
2026-06-15T09:40:48.9154533Z             },
2026-06-15T09:40:48.9154609Z             {
2026-06-15T09:40:48.9154720Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9154795Z               "line": 17
2026-06-15T09:40:48.9154876Z             }
2026-06-15T09:40:48.9154953Z           ]
2026-06-15T09:40:48.9155034Z         },
2026-06-15T09:40:48.9155115Z         "int": {
2026-06-15T09:40:48.9155205Z           "complete": true,
2026-06-15T09:40:48.9155302Z           "evidence": [
2026-06-15T09:40:48.9155382Z             {
2026-06-15T09:40:48.9155505Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9155587Z               "line": 341
2026-06-15T09:40:48.9155668Z             },
2026-06-15T09:40:48.9155749Z             {
2026-06-15T09:40:48.9155863Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9155955Z               "line": 606
2026-06-15T09:40:48.9156030Z             },
2026-06-15T09:40:48.9156116Z             {
2026-06-15T09:40:48.9156226Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9156321Z               "line": 879
2026-06-15T09:40:48.9156392Z             }
2026-06-15T09:40:48.9156472Z           ]
2026-06-15T09:40:48.9156553Z         },
2026-06-15T09:40:48.9156630Z         "unit": {
2026-06-15T09:40:48.9156813Z           "complete": true,
2026-06-15T09:40:48.9156885Z           "evidence": [
2026-06-15T09:40:48.9156972Z             {
2026-06-15T09:40:48.9157152Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9157238Z               "line": 651
2026-06-15T09:40:48.9157319Z             },
2026-06-15T09:40:48.9157395Z             {
2026-06-15T09:40:48.9157510Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9157587Z               "line": 686
2026-06-15T09:40:48.9157667Z             },
2026-06-15T09:40:48.9157748Z             {
2026-06-15T09:40:48.9157849Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9157935Z               "line": 936
2026-06-15T09:40:48.9158015Z             },
2026-06-15T09:40:48.9158096Z             {
2026-06-15T09:40:48.9158206Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T09:40:48.9158287Z               "line": 201
2026-06-15T09:40:48.9158363Z             },
2026-06-15T09:40:48.9158449Z             {
2026-06-15T09:40:48.9158564Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9158639Z               "line": 442
2026-06-15T09:40:48.9158716Z             },
2026-06-15T09:40:48.9158799Z             {
2026-06-15T09:40:48.9158912Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9159050Z               "line": 456
2026-06-15T09:40:48.9159128Z             },
2026-06-15T09:40:48.9159199Z             {
2026-06-15T09:40:48.9159306Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9159387Z               "line": 475
2026-06-15T09:40:48.9159464Z             },
2026-06-15T09:40:48.9159544Z             {
2026-06-15T09:40:48.9159661Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.9159738Z               "line": 120
2026-06-15T09:40:48.9159815Z             },
2026-06-15T09:40:48.9159896Z             {
2026-06-15T09:40:48.9160009Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T09:40:48.9160087Z               "line": 163
2026-06-15T09:40:48.9160168Z             },
2026-06-15T09:40:48.9160253Z             {
2026-06-15T09:40:48.9160353Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T09:40:48.9160430Z               "line": 530
2026-06-15T09:40:48.9160510Z             },
2026-06-15T09:40:48.9160591Z             {
2026-06-15T09:40:48.9160696Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9160783Z               "line": 616
2026-06-15T09:40:48.9160863Z             },
2026-06-15T09:40:48.9160939Z             {
2026-06-15T09:40:48.9161045Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9161122Z               "line": 1006
2026-06-15T09:40:48.9161201Z             }
2026-06-15T09:40:48.9161283Z           ]
2026-06-15T09:40:48.9161365Z         }
2026-06-15T09:40:48.9161446Z       }
2026-06-15T09:40:48.9161516Z     },
2026-06-15T09:40:48.9161593Z     {
2026-06-15T09:40:48.9161680Z       "id": "REQ-NET-2",
2026-06-15T09:40:48.9161863Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T09:40:48.9161958Z       "requiredStages": [
2026-06-15T09:40:48.9162040Z         "impl"
2026-06-15T09:40:48.9162120Z       ],
2026-06-15T09:40:48.9162195Z       "stages": {
2026-06-15T09:40:48.9162275Z         "doc": {
2026-06-15T09:40:48.9162362Z           "complete": false,
2026-06-15T09:40:48.9162453Z           "evidence": []
2026-06-15T09:40:48.9162533Z         },
2026-06-15T09:40:48.9162614Z         "impl": {
2026-06-15T09:40:48.9162697Z           "complete": true,
2026-06-15T09:40:48.9162768Z           "evidence": [
2026-06-15T09:40:48.9162848Z             {
2026-06-15T09:40:48.9162958Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.9163039Z               "line": 57
2026-06-15T09:40:48.9163116Z             },
2026-06-15T09:40:48.9163196Z             {
2026-06-15T09:40:48.9163312Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9163520Z               "line": 71
2026-06-15T09:40:48.9163607Z             },
2026-06-15T09:40:48.9163683Z             {
2026-06-15T09:40:48.9163893Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9163980Z               "line": 81
2026-06-15T09:40:48.9164059Z             },
2026-06-15T09:40:48.9164140Z             {
2026-06-15T09:40:48.9164251Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9164327Z               "line": 159
2026-06-15T09:40:48.9164407Z             },
2026-06-15T09:40:48.9164484Z             {
2026-06-15T09:40:48.9164590Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9164670Z               "line": 175
2026-06-15T09:40:48.9164740Z             },
2026-06-15T09:40:48.9164816Z             {
2026-06-15T09:40:48.9164932Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T09:40:48.9165013Z               "line": 190
2026-06-15T09:40:48.9165093Z             }
2026-06-15T09:40:48.9165184Z           ]
2026-06-15T09:40:48.9165260Z         },
2026-06-15T09:40:48.9165341Z         "int": {
2026-06-15T09:40:48.9165427Z           "complete": false,
2026-06-15T09:40:48.9165508Z           "evidence": []
2026-06-15T09:40:48.9165575Z         },
2026-06-15T09:40:48.9165661Z         "unit": {
2026-06-15T09:40:48.9165751Z           "complete": true,
2026-06-15T09:40:48.9165832Z           "evidence": [
2026-06-15T09:40:48.9165909Z             {
2026-06-15T09:40:48.9166018Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.9166094Z               "line": 402
2026-06-15T09:40:48.9166176Z             }
2026-06-15T09:40:48.9166257Z           ]
2026-06-15T09:40:48.9166333Z         }
2026-06-15T09:40:48.9166414Z       }
2026-06-15T09:40:48.9166496Z     },
2026-06-15T09:40:48.9166572Z     {
2026-06-15T09:40:48.9166661Z       "id": "REQ-NET-3",
2026-06-15T09:40:48.9166830Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T09:40:48.9166923Z       "requiredStages": [
2026-06-15T09:40:48.9167014Z         "impl",
2026-06-15T09:40:48.9167095Z         "unit"
2026-06-15T09:40:48.9167180Z       ],
2026-06-15T09:40:48.9167264Z       "stages": {
2026-06-15T09:40:48.9167335Z         "doc": {
2026-06-15T09:40:48.9167416Z           "complete": false,
2026-06-15T09:40:48.9167503Z           "evidence": []
2026-06-15T09:40:48.9167579Z         },
2026-06-15T09:40:48.9167669Z         "impl": {
2026-06-15T09:40:48.9167755Z           "complete": true,
2026-06-15T09:40:48.9167837Z           "evidence": [
2026-06-15T09:40:48.9167922Z             {
2026-06-15T09:40:48.9168031Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.9168118Z               "line": 39
2026-06-15T09:40:48.9168199Z             },
2026-06-15T09:40:48.9168275Z             {
2026-06-15T09:40:48.9168390Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.9168466Z               "line": 182
2026-06-15T09:40:48.9168547Z             },
2026-06-15T09:40:48.9168623Z             {
2026-06-15T09:40:48.9168729Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T09:40:48.9168814Z               "line": 333
2026-06-15T09:40:48.9168885Z             },
2026-06-15T09:40:48.9169049Z             {
2026-06-15T09:40:48.9169162Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:40:48.9169238Z               "line": 36
2026-06-15T09:40:48.9169315Z             },
2026-06-15T09:40:48.9169387Z             {
2026-06-15T09:40:48.9169510Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9169582Z               "line": 158
2026-06-15T09:40:48.9169663Z             },
2026-06-15T09:40:48.9169745Z             {
2026-06-15T09:40:48.9169862Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9169942Z               "line": 212
2026-06-15T09:40:48.9170015Z             },
2026-06-15T09:40:48.9170094Z             {
2026-06-15T09:40:48.9170212Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9170394Z               "line": 233
2026-06-15T09:40:48.9170470Z             },
2026-06-15T09:40:48.9170637Z             {
2026-06-15T09:40:48.9170751Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9170827Z               "line": 291
2026-06-15T09:40:48.9170908Z             },
2026-06-15T09:40:48.9170990Z             {
2026-06-15T09:40:48.9171109Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9171184Z               "line": 310
2026-06-15T09:40:48.9171266Z             },
2026-06-15T09:40:48.9171333Z             {
2026-06-15T09:40:48.9171452Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9171528Z               "line": 348
2026-06-15T09:40:48.9171606Z             },
2026-06-15T09:40:48.9171682Z             {
2026-06-15T09:40:48.9171857Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9171949Z               "line": 393
2026-06-15T09:40:48.9172029Z             },
2026-06-15T09:40:48.9172120Z             {
2026-06-15T09:40:48.9172231Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9172326Z               "line": 406
2026-06-15T09:40:48.9172405Z             },
2026-06-15T09:40:48.9172481Z             {
2026-06-15T09:40:48.9172595Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9172671Z               "line": 29
2026-06-15T09:40:48.9172745Z             },
2026-06-15T09:40:48.9172831Z             {
2026-06-15T09:40:48.9172942Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9173023Z               "line": 72
2026-06-15T09:40:48.9173107Z             },
2026-06-15T09:40:48.9173179Z             {
2026-06-15T09:40:48.9173294Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9173375Z               "line": 123
2026-06-15T09:40:48.9173451Z             }
2026-06-15T09:40:48.9173519Z           ]
2026-06-15T09:40:48.9173600Z         },
2026-06-15T09:40:48.9173681Z         "int": {
2026-06-15T09:40:48.9173765Z           "complete": false,
2026-06-15T09:40:48.9173852Z           "evidence": []
2026-06-15T09:40:48.9173929Z         },
2026-06-15T09:40:48.9174014Z         "unit": {
2026-06-15T09:40:48.9174095Z           "complete": true,
2026-06-15T09:40:48.9174182Z           "evidence": [
2026-06-15T09:40:48.9174262Z             {
2026-06-15T09:40:48.9174376Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.9174463Z               "line": 223
2026-06-15T09:40:48.9174535Z             },
2026-06-15T09:40:48.9174610Z             {
2026-06-15T09:40:48.9174710Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.9174797Z               "line": 351
2026-06-15T09:40:48.9174878Z             },
2026-06-15T09:40:48.9174957Z             {
2026-06-15T09:40:48.9175064Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T09:40:48.9175145Z               "line": 504
2026-06-15T09:40:48.9175226Z             },
2026-06-15T09:40:48.9175305Z             {
2026-06-15T09:40:48.9175410Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:40:48.9175497Z               "line": 93
2026-06-15T09:40:48.9175578Z             },
2026-06-15T09:40:48.9175662Z             {
2026-06-15T09:40:48.9175763Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T09:40:48.9175844Z               "line": 142
2026-06-15T09:40:48.9175925Z             },
2026-06-15T09:40:48.9176011Z             {
2026-06-15T09:40:48.9176122Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9176212Z               "line": 315
2026-06-15T09:40:48.9176296Z             },
2026-06-15T09:40:48.9176373Z             {
2026-06-15T09:40:48.9176488Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9176574Z               "line": 355
2026-06-15T09:40:48.9176655Z             },
2026-06-15T09:40:48.9176737Z             {
2026-06-15T09:40:48.9176850Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T09:40:48.9177018Z               "line": 494
2026-06-15T09:40:48.9177099Z             }
2026-06-15T09:40:48.9177231Z           ]
2026-06-15T09:40:48.9177308Z         }
2026-06-15T09:40:48.9177773Z       }
2026-06-15T09:40:48.9177853Z     },
2026-06-15T09:40:48.9177933Z     {
2026-06-15T09:40:48.9178034Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T09:40:48.9178296Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T09:40:48.9178402Z       "requiredStages": [
2026-06-15T09:40:48.9178510Z         "impl",
2026-06-15T09:40:48.9178640Z         "unit"
2026-06-15T09:40:48.9178754Z       ],
2026-06-15T09:40:48.9178873Z       "stages": {
2026-06-15T09:40:48.9179059Z         "doc": {
2026-06-15T09:40:48.9179192Z           "complete": false,
2026-06-15T09:40:48.9179327Z           "evidence": []
2026-06-15T09:40:48.9179427Z         },
2026-06-15T09:40:48.9179550Z         "impl": {
2026-06-15T09:40:48.9179633Z           "complete": true,
2026-06-15T09:40:48.9179745Z           "evidence": [
2026-06-15T09:40:48.9179822Z             {
2026-06-15T09:40:48.9179948Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9180032Z               "line": 60
2026-06-15T09:40:48.9180113Z             },
2026-06-15T09:40:48.9180190Z             {
2026-06-15T09:40:48.9180300Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9180389Z               "line": 68
2026-06-15T09:40:48.9180469Z             },
2026-06-15T09:40:48.9180545Z             {
2026-06-15T09:40:48.9180664Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9180744Z               "line": 86
2026-06-15T09:40:48.9180824Z             },
2026-06-15T09:40:48.9180892Z             {
2026-06-15T09:40:48.9180997Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9181087Z               "line": 120
2026-06-15T09:40:48.9181168Z             },
2026-06-15T09:40:48.9181250Z             {
2026-06-15T09:40:48.9181364Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9181458Z               "line": 127
2026-06-15T09:40:48.9181541Z             },
2026-06-15T09:40:48.9181617Z             {
2026-06-15T09:40:48.9181735Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9181817Z               "line": 143
2026-06-15T09:40:48.9181922Z             },
2026-06-15T09:40:48.9181998Z             {
2026-06-15T09:40:48.9182112Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:40:48.9182204Z               "line": 16
2026-06-15T09:40:48.9182289Z             }
2026-06-15T09:40:48.9182360Z           ]
2026-06-15T09:40:48.9182442Z         },
2026-06-15T09:40:48.9182528Z         "int": {
2026-06-15T09:40:48.9182627Z           "complete": false,
2026-06-15T09:40:48.9182718Z           "evidence": []
2026-06-15T09:40:48.9182800Z         },
2026-06-15T09:40:48.9182876Z         "unit": {
2026-06-15T09:40:48.9182975Z           "complete": true,
2026-06-15T09:40:48.9183069Z           "evidence": [
2026-06-15T09:40:48.9183146Z             {
2026-06-15T09:40:48.9183259Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9183358Z               "line": 199
2026-06-15T09:40:48.9183435Z             },
2026-06-15T09:40:48.9183521Z             {
2026-06-15T09:40:48.9183630Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9183711Z               "line": 218
2026-06-15T09:40:48.9183788Z             },
2026-06-15T09:40:48.9183869Z             {
2026-06-15T09:40:48.9183968Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9184049Z               "line": 234
2026-06-15T09:40:48.9184141Z             },
2026-06-15T09:40:48.9184217Z             {
2026-06-15T09:40:48.9184330Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T09:40:48.9184418Z               "line": 256
2026-06-15T09:40:48.9184494Z             },
2026-06-15T09:40:48.9184579Z             {
2026-06-15T09:40:48.9184679Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:40:48.9185057Z               "line": 124
2026-06-15T09:40:48.9185233Z             },
2026-06-15T09:40:48.9185314Z             {
2026-06-15T09:40:48.9185415Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:40:48.9185494Z               "line": 140
2026-06-15T09:40:48.9185576Z             },
2026-06-15T09:40:48.9185658Z             {
2026-06-15T09:40:48.9185758Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T09:40:48.9185842Z               "line": 155
2026-06-15T09:40:48.9185917Z             }
2026-06-15T09:40:48.9186009Z           ]
2026-06-15T09:40:48.9186085Z         }
2026-06-15T09:40:48.9186171Z       }
2026-06-15T09:40:48.9186246Z     },
2026-06-15T09:40:48.9186319Z     {
2026-06-15T09:40:48.9186414Z       "id": "REQ-NOTIF-1",
2026-06-15T09:40:48.9186762Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T09:40:48.9186866Z       "requiredStages": [
2026-06-15T09:40:48.9186938Z         "impl",
2026-06-15T09:40:48.9187029Z         "unit",
2026-06-15T09:40:48.9187105Z         "int"
2026-06-15T09:40:48.9187176Z       ],
2026-06-15T09:40:48.9187258Z       "stages": {
2026-06-15T09:40:48.9187340Z         "doc": {
2026-06-15T09:40:48.9187429Z           "complete": false,
2026-06-15T09:40:48.9187510Z           "evidence": []
2026-06-15T09:40:48.9187597Z         },
2026-06-15T09:40:48.9187683Z         "impl": {
2026-06-15T09:40:48.9187758Z           "complete": true,
2026-06-15T09:40:48.9187854Z           "evidence": [
2026-06-15T09:40:48.9187931Z             {
2026-06-15T09:40:48.9188044Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9188129Z               "line": 514
2026-06-15T09:40:48.9188215Z             },
2026-06-15T09:40:48.9188296Z             {
2026-06-15T09:40:48.9188399Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9188489Z               "line": 30
2026-06-15T09:40:48.9188570Z             },
2026-06-15T09:40:48.9188652Z             {
2026-06-15T09:40:48.9188761Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9188847Z               "line": 69
2026-06-15T09:40:48.9188924Z             },
2026-06-15T09:40:48.9189090Z             {
2026-06-15T09:40:48.9189195Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9189276Z               "line": 93
2026-06-15T09:40:48.9189362Z             },
2026-06-15T09:40:48.9189443Z             {
2026-06-15T09:40:48.9189568Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9189653Z               "line": 107
2026-06-15T09:40:48.9189733Z             },
2026-06-15T09:40:48.9189810Z             {
2026-06-15T09:40:48.9189911Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9190001Z               "line": 142
2026-06-15T09:40:48.9190077Z             },
2026-06-15T09:40:48.9190174Z             {
2026-06-15T09:40:48.9190277Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9190358Z               "line": 187
2026-06-15T09:40:48.9190445Z             },
2026-06-15T09:40:48.9190522Z             {
2026-06-15T09:40:48.9190630Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9190716Z               "line": 258
2026-06-15T09:40:48.9190793Z             },
2026-06-15T09:40:48.9190874Z             {
2026-06-15T09:40:48.9190977Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9191067Z               "line": 372
2026-06-15T09:40:48.9191139Z             },
2026-06-15T09:40:48.9191229Z             {
2026-06-15T09:40:48.9191332Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9191419Z               "line": 479
2026-06-15T09:40:48.9191495Z             },
2026-06-15T09:40:48.9191571Z             {
2026-06-15T09:40:48.9191694Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9191777Z               "line": 24
2026-06-15T09:40:48.9192000Z             },
2026-06-15T09:40:48.9192077Z             {
2026-06-15T09:40:48.9192271Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9192363Z               "line": 34
2026-06-15T09:40:48.9192444Z             },
2026-06-15T09:40:48.9192529Z             {
2026-06-15T09:40:48.9192639Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9192731Z               "line": 60
2026-06-15T09:40:48.9192816Z             },
2026-06-15T09:40:48.9192896Z             {
2026-06-15T09:40:48.9193012Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9193088Z               "line": 82
2026-06-15T09:40:48.9193168Z             },
2026-06-15T09:40:48.9193245Z             {
2026-06-15T09:40:48.9193360Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9193441Z               "line": 94
2026-06-15T09:40:48.9193526Z             },
2026-06-15T09:40:48.9193601Z             {
2026-06-15T09:40:48.9193721Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.9193800Z               "line": 96
2026-06-15T09:40:48.9193894Z             },
2026-06-15T09:40:48.9193971Z             {
2026-06-15T09:40:48.9194100Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T09:40:48.9194181Z               "line": 44
2026-06-15T09:40:48.9194261Z             },
2026-06-15T09:40:48.9194339Z             {
2026-06-15T09:40:48.9194458Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.9194543Z               "line": 20
2026-06-15T09:40:48.9194619Z             },
2026-06-15T09:40:48.9194701Z             {
2026-06-15T09:40:48.9194796Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.9194885Z               "line": 30
2026-06-15T09:40:48.9194964Z             },
2026-06-15T09:40:48.9195039Z             {
2026-06-15T09:40:48.9195139Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.9195225Z               "line": 50
2026-06-15T09:40:48.9195316Z             },
2026-06-15T09:40:48.9195397Z             {
2026-06-15T09:40:48.9195520Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9195608Z               "line": 28
2026-06-15T09:40:48.9195683Z             },
2026-06-15T09:40:48.9195763Z             {
2026-06-15T09:40:48.9195864Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9195946Z               "line": 126
2026-06-15T09:40:48.9196021Z             },
2026-06-15T09:40:48.9196102Z             {
2026-06-15T09:40:48.9196208Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9196294Z               "line": 161
2026-06-15T09:40:48.9196374Z             },
2026-06-15T09:40:48.9196459Z             {
2026-06-15T09:40:48.9196554Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9196641Z               "line": 202
2026-06-15T09:40:48.9196721Z             },
2026-06-15T09:40:48.9196797Z             {
2026-06-15T09:40:48.9196912Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9196993Z               "line": 213
2026-06-15T09:40:48.9197079Z             },
2026-06-15T09:40:48.9197160Z             {
2026-06-15T09:40:48.9197256Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9197337Z               "line": 238
2026-06-15T09:40:48.9197412Z             },
2026-06-15T09:40:48.9197489Z             {
2026-06-15T09:40:48.9197594Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9197680Z               "line": 261
2026-06-15T09:40:48.9197765Z             },
2026-06-15T09:40:48.9197843Z             {
2026-06-15T09:40:48.9197961Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9198037Z               "line": 82
2026-06-15T09:40:48.9198118Z             }
2026-06-15T09:40:48.9198200Z           ]
2026-06-15T09:40:48.9198281Z         },
2026-06-15T09:40:48.9198357Z         "int": {
2026-06-15T09:40:48.9198447Z           "complete": true,
2026-06-15T09:40:48.9198614Z           "evidence": [
2026-06-15T09:40:48.9198689Z             {
2026-06-15T09:40:48.9198866Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9199040Z               "line": 285
2026-06-15T09:40:48.9199112Z             },
2026-06-15T09:40:48.9199188Z             {
2026-06-15T09:40:48.9199302Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T09:40:48.9199392Z               "line": 102
2026-06-15T09:40:48.9199464Z             },
2026-06-15T09:40:48.9199545Z             {
2026-06-15T09:40:48.9199654Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9199736Z               "line": 615
2026-06-15T09:40:48.9199823Z             },
2026-06-15T09:40:48.9199899Z             {
2026-06-15T09:40:48.9200017Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9200104Z               "line": 1008
2026-06-15T09:40:48.9200180Z             }
2026-06-15T09:40:48.9200265Z           ]
2026-06-15T09:40:48.9200342Z         },
2026-06-15T09:40:48.9200423Z         "unit": {
2026-06-15T09:40:48.9200508Z           "complete": true,
2026-06-15T09:40:48.9200613Z           "evidence": [
2026-06-15T09:40:48.9200685Z             {
2026-06-15T09:40:48.9200791Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9200875Z               "line": 572
2026-06-15T09:40:48.9200956Z             },
2026-06-15T09:40:48.9201039Z             {
2026-06-15T09:40:48.9201143Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9204483Z               "line": 636
2026-06-15T09:40:48.9204589Z             },
2026-06-15T09:40:48.9204670Z             {
2026-06-15T09:40:48.9204807Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9204899Z               "line": 740
2026-06-15T09:40:48.9204980Z             },
2026-06-15T09:40:48.9205065Z             {
2026-06-15T09:40:48.9205184Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9205285Z               "line": 772
2026-06-15T09:40:48.9205370Z             },
2026-06-15T09:40:48.9205455Z             {
2026-06-15T09:40:48.9205571Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9205661Z               "line": 840
2026-06-15T09:40:48.9205737Z             },
2026-06-15T09:40:48.9205814Z             {
2026-06-15T09:40:48.9205923Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9206004Z               "line": 898
2026-06-15T09:40:48.9206085Z             },
2026-06-15T09:40:48.9206163Z             {
2026-06-15T09:40:48.9206276Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9206362Z               "line": 1173
2026-06-15T09:40:48.9206444Z             },
2026-06-15T09:40:48.9206521Z             {
2026-06-15T09:40:48.9206643Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9206729Z               "line": 157
2026-06-15T09:40:48.9206807Z             },
2026-06-15T09:40:48.9206882Z             {
2026-06-15T09:40:48.9207005Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9207104Z               "line": 250
2026-06-15T09:40:48.9207182Z             },
2026-06-15T09:40:48.9207263Z             {
2026-06-15T09:40:48.9207381Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T09:40:48.9207468Z               "line": 273
2026-06-15T09:40:48.9207553Z             },
2026-06-15T09:40:48.9207629Z             {
2026-06-15T09:40:48.9207749Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.9207830Z               "line": 355
2026-06-15T09:40:48.9207907Z             },
2026-06-15T09:40:48.9207987Z             {
2026-06-15T09:40:48.9208098Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T09:40:48.9208188Z               "line": 392
2026-06-15T09:40:48.9208268Z             },
2026-06-15T09:40:48.9208344Z             {
2026-06-15T09:40:48.9208469Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T09:40:48.9208688Z               "line": 131
2026-06-15T09:40:48.9208770Z             },
2026-06-15T09:40:48.9208936Z             {
2026-06-15T09:40:48.9209150Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.9209235Z               "line": 72
2026-06-15T09:40:48.9209325Z             },
2026-06-15T09:40:48.9209407Z             {
2026-06-15T09:40:48.9209524Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T09:40:48.9209609Z               "line": 97
2026-06-15T09:40:48.9209681Z             },
2026-06-15T09:40:48.9209763Z             {
2026-06-15T09:40:48.9209862Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9209948Z               "line": 379
2026-06-15T09:40:48.9210034Z             },
2026-06-15T09:40:48.9210110Z             {
2026-06-15T09:40:48.9210219Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9210296Z               "line": 417
2026-06-15T09:40:48.9210373Z             },
2026-06-15T09:40:48.9210459Z             {
2026-06-15T09:40:48.9210563Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9210650Z               "line": 433
2026-06-15T09:40:48.9210731Z             },
2026-06-15T09:40:48.9210807Z             {
2026-06-15T09:40:48.9210912Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9210998Z               "line": 472
2026-06-15T09:40:48.9211083Z             },
2026-06-15T09:40:48.9211164Z             {
2026-06-15T09:40:48.9211265Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9211346Z               "line": 489
2026-06-15T09:40:48.9211421Z             },
2026-06-15T09:40:48.9211493Z             {
2026-06-15T09:40:48.9211604Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9211689Z               "line": 517
2026-06-15T09:40:48.9211769Z             },
2026-06-15T09:40:48.9211851Z             {
2026-06-15T09:40:48.9211952Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T09:40:48.9212032Z               "line": 548
2026-06-15T09:40:48.9212112Z             },
2026-06-15T09:40:48.9212192Z             {
2026-06-15T09:40:48.9212312Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9212391Z               "line": 621
2026-06-15T09:40:48.9212472Z             }
2026-06-15T09:40:48.9212549Z           ]
2026-06-15T09:40:48.9212625Z         }
2026-06-15T09:40:48.9212711Z       }
2026-06-15T09:40:48.9212791Z     },
2026-06-15T09:40:48.9212868Z     {
2026-06-15T09:40:48.9212950Z       "id": "REQ-NOTIF-2",
2026-06-15T09:40:48.9213212Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T09:40:48.9213297Z       "requiredStages": [
2026-06-15T09:40:48.9213378Z         "doc",
2026-06-15T09:40:48.9213459Z         "impl",
2026-06-15T09:40:48.9213541Z         "unit",
2026-06-15T09:40:48.9213621Z         "int"
2026-06-15T09:40:48.9213693Z       ],
2026-06-15T09:40:48.9213774Z       "stages": {
2026-06-15T09:40:48.9213861Z         "doc": {
2026-06-15T09:40:48.9213959Z           "complete": true,
2026-06-15T09:40:48.9214040Z           "evidence": [
2026-06-15T09:40:48.9214122Z             {
2026-06-15T09:40:48.9214218Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9214302Z               "line": 451
2026-06-15T09:40:48.9214379Z             },
2026-06-15T09:40:48.9214462Z             {
2026-06-15T09:40:48.9214561Z               "path": "docs/MANIFEST.md",
2026-06-15T09:40:48.9214641Z               "line": 74
2026-06-15T09:40:48.9214717Z             }
2026-06-15T09:40:48.9214788Z           ]
2026-06-15T09:40:48.9214855Z         },
2026-06-15T09:40:48.9214934Z         "impl": {
2026-06-15T09:40:48.9215019Z           "complete": true,
2026-06-15T09:40:48.9215110Z           "evidence": [
2026-06-15T09:40:48.9215182Z             {
2026-06-15T09:40:48.9215296Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9215386Z               "line": 287
2026-06-15T09:40:48.9215454Z             },
2026-06-15T09:40:48.9215639Z             {
2026-06-15T09:40:48.9215754Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9215944Z               "line": 301
2026-06-15T09:40:48.9216020Z             },
2026-06-15T09:40:48.9216108Z             {
2026-06-15T09:40:48.9216221Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9216302Z               "line": 326
2026-06-15T09:40:48.9216384Z             },
2026-06-15T09:40:48.9216465Z             {
2026-06-15T09:40:48.9216588Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.9216669Z               "line": 199
2026-06-15T09:40:48.9216752Z             },
2026-06-15T09:40:48.9216822Z             {
2026-06-15T09:40:48.9216936Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9217023Z               "line": 91
2026-06-15T09:40:48.9217100Z             },
2026-06-15T09:40:48.9217174Z             {
2026-06-15T09:40:48.9217275Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9217372Z               "line": 1957
2026-06-15T09:40:48.9217452Z             },
2026-06-15T09:40:48.9217541Z             {
2026-06-15T09:40:48.9217646Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9217723Z               "line": 2006
2026-06-15T09:40:48.9217809Z             },
2026-06-15T09:40:48.9217884Z             {
2026-06-15T09:40:48.9217984Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9218066Z               "line": 2085
2026-06-15T09:40:48.9218147Z             },
2026-06-15T09:40:48.9218227Z             {
2026-06-15T09:40:48.9218319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9218409Z               "line": 2124
2026-06-15T09:40:48.9218490Z             }
2026-06-15T09:40:48.9218570Z           ]
2026-06-15T09:40:48.9218653Z         },
2026-06-15T09:40:48.9218729Z         "int": {
2026-06-15T09:40:48.9218819Z           "complete": true,
2026-06-15T09:40:48.9218899Z           "evidence": [
2026-06-15T09:40:48.9219067Z             {
2026-06-15T09:40:48.9219186Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9219288Z               "line": 741
2026-06-15T09:40:48.9219373Z             },
2026-06-15T09:40:48.9219472Z             {
2026-06-15T09:40:48.9219597Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9219678Z               "line": 1161
2026-06-15T09:40:48.9219758Z             }
2026-06-15T09:40:48.9219838Z           ]
2026-06-15T09:40:48.9219919Z         },
2026-06-15T09:40:48.9219995Z         "unit": {
2026-06-15T09:40:48.9220084Z           "complete": true,
2026-06-15T09:40:48.9220164Z           "evidence": [
2026-06-15T09:40:48.9220246Z             {
2026-06-15T09:40:48.9220352Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9220432Z               "line": 1022
2026-06-15T09:40:48.9220508Z             },
2026-06-15T09:40:48.9220585Z             {
2026-06-15T09:40:48.9220690Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9220784Z               "line": 1090
2026-06-15T09:40:48.9220866Z             },
2026-06-15T09:40:48.9220957Z             {
2026-06-15T09:40:48.9221052Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9221132Z               "line": 6604
2026-06-15T09:40:48.9221215Z             },
2026-06-15T09:40:48.9221291Z             {
2026-06-15T09:40:48.9221386Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9221476Z               "line": 6659
2026-06-15T09:40:48.9221553Z             }
2026-06-15T09:40:48.9221629Z           ]
2026-06-15T09:40:48.9221715Z         }
2026-06-15T09:40:48.9221791Z       }
2026-06-15T09:40:48.9221873Z     },
2026-06-15T09:40:48.9221948Z     {
2026-06-15T09:40:48.9222030Z       "id": "REQ-PAIR-1",
2026-06-15T09:40:48.9222130Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T09:40:48.9222221Z       "requiredStages": [
2026-06-15T09:40:48.9222306Z         "impl",
2026-06-15T09:40:48.9222387Z         "unit",
2026-06-15T09:40:48.9222569Z         "int"
2026-06-15T09:40:48.9222653Z       ],
2026-06-15T09:40:48.9222734Z       "stages": {
2026-06-15T09:40:48.9222909Z         "doc": {
2026-06-15T09:40:48.9222998Z           "complete": false,
2026-06-15T09:40:48.9223079Z           "evidence": []
2026-06-15T09:40:48.9223156Z         },
2026-06-15T09:40:48.9223233Z         "impl": {
2026-06-15T09:40:48.9223322Z           "complete": true,
2026-06-15T09:40:48.9223404Z           "evidence": [
2026-06-15T09:40:48.9223476Z             {
2026-06-15T09:40:48.9223609Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9223690Z               "line": 27
2026-06-15T09:40:48.9223767Z             },
2026-06-15T09:40:48.9223848Z             {
2026-06-15T09:40:48.9223971Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9224052Z               "line": 88
2026-06-15T09:40:48.9224134Z             },
2026-06-15T09:40:48.9224214Z             {
2026-06-15T09:40:48.9224339Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9224435Z               "line": 110
2026-06-15T09:40:48.9224511Z             },
2026-06-15T09:40:48.9224592Z             {
2026-06-15T09:40:48.9224712Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9224798Z               "line": 153
2026-06-15T09:40:48.9224881Z             },
2026-06-15T09:40:48.9224958Z             {
2026-06-15T09:40:48.9225084Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9225168Z               "line": 182
2026-06-15T09:40:48.9225248Z             },
2026-06-15T09:40:48.9225324Z             {
2026-06-15T09:40:48.9225453Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9225532Z               "line": 29
2026-06-15T09:40:48.9225608Z             },
2026-06-15T09:40:48.9225689Z             {
2026-06-15T09:40:48.9225828Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T09:40:48.9225923Z               "line": 31
2026-06-15T09:40:48.9225995Z             },
2026-06-15T09:40:48.9226076Z             {
2026-06-15T09:40:48.9226204Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9226290Z               "line": 44
2026-06-15T09:40:48.9226377Z             },
2026-06-15T09:40:48.9226453Z             {
2026-06-15T09:40:48.9226581Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9226663Z               "line": 171
2026-06-15T09:40:48.9226738Z             },
2026-06-15T09:40:48.9226815Z             {
2026-06-15T09:40:48.9226924Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9227012Z               "line": 376
2026-06-15T09:40:48.9227086Z             }
2026-06-15T09:40:48.9227172Z           ]
2026-06-15T09:40:48.9227249Z         },
2026-06-15T09:40:48.9227326Z         "int": {
2026-06-15T09:40:48.9227420Z           "complete": true,
2026-06-15T09:40:48.9227501Z           "evidence": [
2026-06-15T09:40:48.9227584Z             {
2026-06-15T09:40:48.9227702Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9227797Z               "line": 576
2026-06-15T09:40:48.9227874Z             },
2026-06-15T09:40:48.9227951Z             {
2026-06-15T09:40:48.9228068Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9228153Z               "line": 793
2026-06-15T09:40:48.9228230Z             }
2026-06-15T09:40:48.9228307Z           ]
2026-06-15T09:40:48.9228383Z         },
2026-06-15T09:40:48.9228468Z         "unit": {
2026-06-15T09:40:48.9228559Z           "complete": true,
2026-06-15T09:40:48.9228641Z           "evidence": [
2026-06-15T09:40:48.9228721Z             {
2026-06-15T09:40:48.9228840Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9228913Z               "line": 236
2026-06-15T09:40:48.9229064Z             },
2026-06-15T09:40:48.9229140Z             {
2026-06-15T09:40:48.9229270Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T09:40:48.9229484Z               "line": 349
2026-06-15T09:40:48.9229646Z             },
2026-06-15T09:40:48.9229722Z             {
2026-06-15T09:40:48.9229843Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9229923Z               "line": 194
2026-06-15T09:40:48.9229999Z             },
2026-06-15T09:40:48.9230085Z             {
2026-06-15T09:40:48.9230201Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9230280Z               "line": 216
2026-06-15T09:40:48.9230361Z             },
2026-06-15T09:40:48.9230436Z             {
2026-06-15T09:40:48.9230555Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9230635Z               "line": 230
2026-06-15T09:40:48.9230715Z             },
2026-06-15T09:40:48.9230797Z             {
2026-06-15T09:40:48.9230917Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9230992Z               "line": 242
2026-06-15T09:40:48.9231073Z             },
2026-06-15T09:40:48.9231150Z             {
2026-06-15T09:40:48.9231278Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9231354Z               "line": 256
2026-06-15T09:40:48.9231431Z             },
2026-06-15T09:40:48.9231508Z             {
2026-06-15T09:40:48.9231626Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9231717Z               "line": 270
2026-06-15T09:40:48.9231799Z             },
2026-06-15T09:40:48.9231875Z             {
2026-06-15T09:40:48.9231993Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9232070Z               "line": 277
2026-06-15T09:40:48.9232151Z             },
2026-06-15T09:40:48.9232232Z             {
2026-06-15T09:40:48.9232336Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T09:40:48.9232419Z               "line": 295
2026-06-15T09:40:48.9232499Z             },
2026-06-15T09:40:48.9232575Z             {
2026-06-15T09:40:48.9232700Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9232786Z               "line": 968
2026-06-15T09:40:48.9232861Z             },
2026-06-15T09:40:48.9232938Z             {
2026-06-15T09:40:48.9233059Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9233152Z               "line": 1051
2026-06-15T09:40:48.9233228Z             },
2026-06-15T09:40:48.9233308Z             {
2026-06-15T09:40:48.9233427Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9233502Z               "line": 1121
2026-06-15T09:40:48.9233573Z             },
2026-06-15T09:40:48.9233649Z             {
2026-06-15T09:40:48.9233770Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9233850Z               "line": 1182
2026-06-15T09:40:48.9233925Z             },
2026-06-15T09:40:48.9234003Z             {
2026-06-15T09:40:48.9234122Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9234217Z               "line": 1238
2026-06-15T09:40:48.9234298Z             },
2026-06-15T09:40:48.9234394Z             {
2026-06-15T09:40:48.9234512Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9234594Z               "line": 1457
2026-06-15T09:40:48.9234675Z             }
2026-06-15T09:40:48.9234751Z           ]
2026-06-15T09:40:48.9234827Z         }
2026-06-15T09:40:48.9234908Z       }
2026-06-15T09:40:48.9234985Z     },
2026-06-15T09:40:48.9235061Z     {
2026-06-15T09:40:48.9235156Z       "id": "REQ-PAIR-2",
2026-06-15T09:40:48.9235291Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T09:40:48.9235390Z       "requiredStages": [],
2026-06-15T09:40:48.9235471Z       "stages": {
2026-06-15T09:40:48.9235548Z         "doc": {
2026-06-15T09:40:48.9235639Z           "complete": false,
2026-06-15T09:40:48.9235729Z           "evidence": []
2026-06-15T09:40:48.9235808Z         },
2026-06-15T09:40:48.9235966Z         "impl": {
2026-06-15T09:40:48.9236060Z           "complete": false,
2026-06-15T09:40:48.9236144Z           "evidence": []
2026-06-15T09:40:48.9236303Z         },
2026-06-15T09:40:48.9236389Z         "int": {
2026-06-15T09:40:48.9236478Z           "complete": false,
2026-06-15T09:40:48.9236569Z           "evidence": []
2026-06-15T09:40:48.9236641Z         },
2026-06-15T09:40:48.9236718Z         "unit": {
2026-06-15T09:40:48.9236802Z           "complete": false,
2026-06-15T09:40:48.9236880Z           "evidence": []
2026-06-15T09:40:48.9236961Z         }
2026-06-15T09:40:48.9237042Z       }
2026-06-15T09:40:48.9237117Z     },
2026-06-15T09:40:48.9237195Z     {
2026-06-15T09:40:48.9237290Z       "id": "REQ-PAIR-3",
2026-06-15T09:40:48.9237432Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T09:40:48.9237509Z       "requiredStages": [
2026-06-15T09:40:48.9237586Z         "impl",
2026-06-15T09:40:48.9237661Z         "unit"
2026-06-15T09:40:48.9237737Z       ],
2026-06-15T09:40:48.9237829Z       "stages": {
2026-06-15T09:40:48.9237915Z         "doc": {
2026-06-15T09:40:48.9237994Z           "complete": false,
2026-06-15T09:40:48.9238095Z           "evidence": []
2026-06-15T09:40:48.9238182Z         },
2026-06-15T09:40:48.9238258Z         "impl": {
2026-06-15T09:40:48.9238353Z           "complete": true,
2026-06-15T09:40:48.9238434Z           "evidence": [
2026-06-15T09:40:48.9238516Z             {
2026-06-15T09:40:48.9238614Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9238700Z               "line": 2819
2026-06-15T09:40:48.9238785Z             },
2026-06-15T09:40:48.9238858Z             {
2026-06-15T09:40:48.9239038Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9239124Z               "line": 2888
2026-06-15T09:40:48.9239210Z             },
2026-06-15T09:40:48.9239300Z             {
2026-06-15T09:40:48.9239395Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9239483Z               "line": 3269
2026-06-15T09:40:48.9239568Z             },
2026-06-15T09:40:48.9239653Z             {
2026-06-15T09:40:48.9239744Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9239844Z               "line": 4514
2026-06-15T09:40:48.9239921Z             }
2026-06-15T09:40:48.9240001Z           ]
2026-06-15T09:40:48.9240078Z         },
2026-06-15T09:40:48.9240159Z         "int": {
2026-06-15T09:40:48.9240249Z           "complete": false,
2026-06-15T09:40:48.9240330Z           "evidence": []
2026-06-15T09:40:48.9240408Z         },
2026-06-15T09:40:48.9240488Z         "unit": {
2026-06-15T09:40:48.9240563Z           "complete": true,
2026-06-15T09:40:48.9240650Z           "evidence": [
2026-06-15T09:40:48.9240722Z             {
2026-06-15T09:40:48.9240822Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9240906Z               "line": 8224
2026-06-15T09:40:48.9240987Z             },
2026-06-15T09:40:48.9241064Z             {
2026-06-15T09:40:48.9241162Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9241262Z               "line": 8439
2026-06-15T09:40:48.9241343Z             },
2026-06-15T09:40:48.9241424Z             {
2026-06-15T09:40:48.9241519Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9241600Z               "line": 9038
2026-06-15T09:40:48.9241676Z             },
2026-06-15T09:40:48.9241753Z             {
2026-06-15T09:40:48.9241857Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9241938Z               "line": 9057
2026-06-15T09:40:48.9242011Z             },
2026-06-15T09:40:48.9242091Z             {
2026-06-15T09:40:48.9242196Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9242287Z               "line": 9081
2026-06-15T09:40:48.9242369Z             },
2026-06-15T09:40:48.9242449Z             {
2026-06-15T09:40:48.9242544Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9242635Z               "line": 9100
2026-06-15T09:40:48.9242707Z             },
2026-06-15T09:40:48.9242792Z             {
2026-06-15T09:40:48.9242998Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9243083Z               "line": 9113
2026-06-15T09:40:48.9243270Z             },
2026-06-15T09:40:48.9243355Z             {
2026-06-15T09:40:48.9243450Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9243531Z               "line": 9122
2026-06-15T09:40:48.9243623Z             }
2026-06-15T09:40:48.9243708Z           ]
2026-06-15T09:40:48.9243778Z         }
2026-06-15T09:40:48.9243859Z       }
2026-06-15T09:40:48.9243926Z     },
2026-06-15T09:40:48.9244006Z     {
2026-06-15T09:40:48.9244086Z       "id": "REQ-PAIR-4",
2026-06-15T09:40:48.9244195Z       "title": "Subnet naming on first pairing",
2026-06-15T09:40:48.9244286Z       "requiredStages": [
2026-06-15T09:40:48.9244358Z         "impl",
2026-06-15T09:40:48.9244438Z         "unit"
2026-06-15T09:40:48.9244510Z       ],
2026-06-15T09:40:48.9244592Z       "stages": {
2026-06-15T09:40:48.9244673Z         "doc": {
2026-06-15T09:40:48.9244767Z           "complete": false,
2026-06-15T09:40:48.9244863Z           "evidence": []
2026-06-15T09:40:48.9244945Z         },
2026-06-15T09:40:48.9245030Z         "impl": {
2026-06-15T09:40:48.9245120Z           "complete": true,
2026-06-15T09:40:48.9245202Z           "evidence": [
2026-06-15T09:40:48.9245283Z             {
2026-06-15T09:40:48.9245397Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T09:40:48.9245488Z               "line": 174
2026-06-15T09:40:48.9245569Z             }
2026-06-15T09:40:48.9245645Z           ]
2026-06-15T09:40:48.9245721Z         },
2026-06-15T09:40:48.9245812Z         "int": {
2026-06-15T09:40:48.9245898Z           "complete": false,
2026-06-15T09:40:48.9245988Z           "evidence": []
2026-06-15T09:40:48.9246074Z         },
2026-06-15T09:40:48.9246152Z         "unit": {
2026-06-15T09:40:48.9246247Z           "complete": true,
2026-06-15T09:40:48.9246331Z           "evidence": [
2026-06-15T09:40:48.9246411Z             {
2026-06-15T09:40:48.9246535Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9246620Z               "line": 1294
2026-06-15T09:40:48.9246704Z             }
2026-06-15T09:40:48.9246786Z           ]
2026-06-15T09:40:48.9246868Z         }
2026-06-15T09:40:48.9246944Z       }
2026-06-15T09:40:48.9247024Z     },
2026-06-15T09:40:48.9247105Z     {
2026-06-15T09:40:48.9247197Z       "id": "REQ-PAIR-5",
2026-06-15T09:40:48.9247492Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T09:40:48.9247578Z       "requiredStages": [
2026-06-15T09:40:48.9247667Z         "impl",
2026-06-15T09:40:48.9247735Z         "unit",
2026-06-15T09:40:48.9247817Z         "int"
2026-06-15T09:40:48.9247901Z       ],
2026-06-15T09:40:48.9247987Z       "stages": {
2026-06-15T09:40:48.9248074Z         "doc": {
2026-06-15T09:40:48.9248164Z           "complete": false,
2026-06-15T09:40:48.9248250Z           "evidence": []
2026-06-15T09:40:48.9248336Z         },
2026-06-15T09:40:48.9248427Z         "impl": {
2026-06-15T09:40:48.9248522Z           "complete": true,
2026-06-15T09:40:48.9248612Z           "evidence": [
2026-06-15T09:40:48.9248704Z             {
2026-06-15T09:40:48.9248832Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9248923Z               "line": 44
2026-06-15T09:40:48.9249081Z             },
2026-06-15T09:40:48.9249161Z             {
2026-06-15T09:40:48.9249312Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9249408Z               "line": 96
2026-06-15T09:40:48.9249490Z             },
2026-06-15T09:40:48.9249569Z             {
2026-06-15T09:40:48.9249684Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9249766Z               "line": 107
2026-06-15T09:40:48.9249847Z             },
2026-06-15T09:40:48.9249927Z             {
2026-06-15T09:40:48.9250047Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9250138Z               "line": 124
2026-06-15T09:40:48.9250319Z             },
2026-06-15T09:40:48.9250405Z             {
2026-06-15T09:40:48.9250514Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9250682Z               "line": 155
2026-06-15T09:40:48.9250761Z             },
2026-06-15T09:40:48.9250838Z             {
2026-06-15T09:40:48.9250963Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9251044Z               "line": 195
2026-06-15T09:40:48.9251123Z             },
2026-06-15T09:40:48.9251200Z             {
2026-06-15T09:40:48.9251321Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9251401Z               "line": 251
2026-06-15T09:40:48.9251490Z             },
2026-06-15T09:40:48.9251566Z             {
2026-06-15T09:40:48.9251709Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9251798Z               "line": 33
2026-06-15T09:40:48.9251883Z             },
2026-06-15T09:40:48.9251960Z             {
2026-06-15T09:40:48.9252098Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9252183Z               "line": 45
2026-06-15T09:40:48.9252265Z             },
2026-06-15T09:40:48.9252346Z             {
2026-06-15T09:40:48.9252470Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9252547Z               "line": 59
2026-06-15T09:40:48.9252623Z             },
2026-06-15T09:40:48.9252704Z             {
2026-06-15T09:40:48.9252823Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9252910Z               "line": 376
2026-06-15T09:40:48.9252980Z             }
2026-06-15T09:40:48.9253056Z           ]
2026-06-15T09:40:48.9253133Z         },
2026-06-15T09:40:48.9253215Z         "int": {
2026-06-15T09:40:48.9253304Z           "complete": true,
2026-06-15T09:40:48.9253395Z           "evidence": [
2026-06-15T09:40:48.9253471Z             {
2026-06-15T09:40:48.9253596Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9253696Z               "line": 793
2026-06-15T09:40:48.9253777Z             },
2026-06-15T09:40:48.9253864Z             {
2026-06-15T09:40:48.9253986Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9254068Z               "line": 342
2026-06-15T09:40:48.9254150Z             }
2026-06-15T09:40:48.9254226Z           ]
2026-06-15T09:40:48.9254305Z         },
2026-06-15T09:40:48.9254386Z         "unit": {
2026-06-15T09:40:48.9254476Z           "complete": true,
2026-06-15T09:40:48.9254562Z           "evidence": [
2026-06-15T09:40:48.9254636Z             {
2026-06-15T09:40:48.9254760Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9254837Z               "line": 293
2026-06-15T09:40:48.9254918Z             },
2026-06-15T09:40:48.9254994Z             {
2026-06-15T09:40:48.9255118Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9255200Z               "line": 304
2026-06-15T09:40:48.9255275Z             },
2026-06-15T09:40:48.9255361Z             {
2026-06-15T09:40:48.9255467Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9255562Z               "line": 406
2026-06-15T09:40:48.9255637Z             },
2026-06-15T09:40:48.9255719Z             {
2026-06-15T09:40:48.9255857Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9255933Z               "line": 72
2026-06-15T09:40:48.9256019Z             },
2026-06-15T09:40:48.9256102Z             {
2026-06-15T09:40:48.9256243Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9256320Z               "line": 82
2026-06-15T09:40:48.9256407Z             },
2026-06-15T09:40:48.9256482Z             {
2026-06-15T09:40:48.9256601Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9256692Z               "line": 100
2026-06-15T09:40:48.9256769Z             },
2026-06-15T09:40:48.9256858Z             {
2026-06-15T09:40:48.9257067Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9257237Z               "line": 110
2026-06-15T09:40:48.9257322Z             },
2026-06-15T09:40:48.9257403Z             {
2026-06-15T09:40:48.9257537Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T09:40:48.9257622Z               "line": 125
2026-06-15T09:40:48.9257704Z             },
2026-06-15T09:40:48.9257776Z             {
2026-06-15T09:40:48.9257885Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9257975Z               "line": 1044
2026-06-15T09:40:48.9258057Z             },
2026-06-15T09:40:48.9258133Z             {
2026-06-15T09:40:48.9258256Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9258348Z               "line": 1110
2026-06-15T09:40:48.9258424Z             },
2026-06-15T09:40:48.9258500Z             {
2026-06-15T09:40:48.9258624Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9258720Z               "line": 1357
2026-06-15T09:40:48.9258805Z             }
2026-06-15T09:40:48.9258881Z           ]
2026-06-15T09:40:48.9259039Z         }
2026-06-15T09:40:48.9259124Z       }
2026-06-15T09:40:48.9259201Z     },
2026-06-15T09:40:48.9259288Z     {
2026-06-15T09:40:48.9259373Z       "id": "REQ-PAIR-6",
2026-06-15T09:40:48.9259641Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T09:40:48.9259721Z       "requiredStages": [
2026-06-15T09:40:48.9259810Z         "impl",
2026-06-15T09:40:48.9259891Z         "unit"
2026-06-15T09:40:48.9259973Z       ],
2026-06-15T09:40:48.9260054Z       "stages": {
2026-06-15T09:40:48.9260129Z         "doc": {
2026-06-15T09:40:48.9260220Z           "complete": false,
2026-06-15T09:40:48.9260302Z           "evidence": []
2026-06-15T09:40:48.9260383Z         },
2026-06-15T09:40:48.9260468Z         "impl": {
2026-06-15T09:40:48.9260555Z           "complete": true,
2026-06-15T09:40:48.9260650Z           "evidence": [
2026-06-15T09:40:48.9260726Z             {
2026-06-15T09:40:48.9260831Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9260917Z               "line": 2888
2026-06-15T09:40:48.9260998Z             },
2026-06-15T09:40:48.9261083Z             {
2026-06-15T09:40:48.9261179Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9261270Z               "line": 3269
2026-06-15T09:40:48.9261345Z             },
2026-06-15T09:40:48.9261431Z             {
2026-06-15T09:40:48.9261537Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.9261623Z               "line": 18
2026-06-15T09:40:48.9261708Z             },
2026-06-15T09:40:48.9261790Z             {
2026-06-15T09:40:48.9261900Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.9261975Z               "line": 49
2026-06-15T09:40:48.9262055Z             },
2026-06-15T09:40:48.9262136Z             {
2026-06-15T09:40:48.9262250Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.9262329Z               "line": 318
2026-06-15T09:40:48.9262415Z             }
2026-06-15T09:40:48.9262491Z           ]
2026-06-15T09:40:48.9262559Z         },
2026-06-15T09:40:48.9262644Z         "int": {
2026-06-15T09:40:48.9262725Z           "complete": false,
2026-06-15T09:40:48.9262811Z           "evidence": []
2026-06-15T09:40:48.9262892Z         },
2026-06-15T09:40:48.9262982Z         "unit": {
2026-06-15T09:40:48.9263073Z           "complete": true,
2026-06-15T09:40:48.9263155Z           "evidence": [
2026-06-15T09:40:48.9263235Z             {
2026-06-15T09:40:48.9263330Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9263422Z               "line": 9135
2026-06-15T09:40:48.9263503Z             },
2026-06-15T09:40:48.9263584Z             {
2026-06-15T09:40:48.9263683Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9263761Z               "line": 9152
2026-06-15T09:40:48.9263837Z             },
2026-06-15T09:40:48.9264012Z             {
2026-06-15T09:40:48.9264119Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.9264293Z               "line": 383
2026-06-15T09:40:48.9264371Z             },
2026-06-15T09:40:48.9267070Z             {
2026-06-15T09:40:48.9267214Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T09:40:48.9267306Z               "line": 392
2026-06-15T09:40:48.9267385Z             }
2026-06-15T09:40:48.9267470Z           ]
2026-06-15T09:40:48.9267550Z         }
2026-06-15T09:40:48.9267627Z       }
2026-06-15T09:40:48.9267707Z     },
2026-06-15T09:40:48.9267778Z     {
2026-06-15T09:40:48.9267872Z       "id": "REQ-PAIR-7",
2026-06-15T09:40:48.9268031Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T09:40:48.9268130Z       "requiredStages": [],
2026-06-15T09:40:48.9268212Z       "stages": {
2026-06-15T09:40:48.9268293Z         "doc": {
2026-06-15T09:40:48.9268393Z           "complete": false,
2026-06-15T09:40:48.9268492Z           "evidence": []
2026-06-15T09:40:48.9268570Z         },
2026-06-15T09:40:48.9268650Z         "impl": {
2026-06-15T09:40:48.9268750Z           "complete": false,
2026-06-15T09:40:48.9268846Z           "evidence": []
2026-06-15T09:40:48.9268923Z         },
2026-06-15T09:40:48.9269098Z         "int": {
2026-06-15T09:40:48.9269184Z           "complete": false,
2026-06-15T09:40:48.9269270Z           "evidence": []
2026-06-15T09:40:48.9269365Z         },
2026-06-15T09:40:48.9269441Z         "unit": {
2026-06-15T09:40:48.9269529Z           "complete": false,
2026-06-15T09:40:48.9269604Z           "evidence": []
2026-06-15T09:40:48.9269685Z         }
2026-06-15T09:40:48.9269761Z       }
2026-06-15T09:40:48.9269843Z     },
2026-06-15T09:40:48.9269919Z     {
2026-06-15T09:40:48.9270014Z       "id": "REQ-PAIR-8",
2026-06-15T09:40:48.9271410Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T09:40:48.9271515Z       "requiredStages": [
2026-06-15T09:40:48.9271596Z         "impl",
2026-06-15T09:40:48.9271676Z         "unit"
2026-06-15T09:40:48.9271774Z       ],
2026-06-15T09:40:48.9271887Z       "stages": {
2026-06-15T09:40:48.9271977Z         "doc": {
2026-06-15T09:40:48.9272079Z           "complete": false,
2026-06-15T09:40:48.9272159Z           "evidence": []
2026-06-15T09:40:48.9272239Z         },
2026-06-15T09:40:48.9272320Z         "impl": {
2026-06-15T09:40:48.9272413Z           "complete": true,
2026-06-15T09:40:48.9272488Z           "evidence": [
2026-06-15T09:40:48.9272568Z             {
2026-06-15T09:40:48.9272691Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9272777Z               "line": 577
2026-06-15T09:40:48.9272866Z             },
2026-06-15T09:40:48.9272937Z             {
2026-06-15T09:40:48.9273075Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9273163Z               "line": 22
2026-06-15T09:40:48.9273233Z             },
2026-06-15T09:40:48.9273314Z             {
2026-06-15T09:40:48.9273434Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9273529Z               "line": 76
2026-06-15T09:40:48.9273609Z             },
2026-06-15T09:40:48.9273696Z             {
2026-06-15T09:40:48.9273815Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9273890Z               "line": 127
2026-06-15T09:40:48.9273967Z             }
2026-06-15T09:40:48.9274044Z           ]
2026-06-15T09:40:48.9274120Z         },
2026-06-15T09:40:48.9274201Z         "int": {
2026-06-15T09:40:48.9274296Z           "complete": false,
2026-06-15T09:40:48.9274383Z           "evidence": []
2026-06-15T09:40:48.9274611Z         },
2026-06-15T09:40:48.9274698Z         "unit": {
2026-06-15T09:40:48.9274777Z           "complete": true,
2026-06-15T09:40:48.9274956Z           "evidence": [
2026-06-15T09:40:48.9275036Z             {
2026-06-15T09:40:48.9275155Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9275246Z               "line": 183
2026-06-15T09:40:48.9275327Z             },
2026-06-15T09:40:48.9275407Z             {
2026-06-15T09:40:48.9275520Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9275606Z               "line": 195
2026-06-15T09:40:48.9275678Z             },
2026-06-15T09:40:48.9275752Z             {
2026-06-15T09:40:48.9275870Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9275947Z               "line": 211
2026-06-15T09:40:48.9276029Z             },
2026-06-15T09:40:48.9276104Z             {
2026-06-15T09:40:48.9276224Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T09:40:48.9276320Z               "line": 227
2026-06-15T09:40:48.9276396Z             }
2026-06-15T09:40:48.9276481Z           ]
2026-06-15T09:40:48.9276558Z         }
2026-06-15T09:40:48.9276639Z       }
2026-06-15T09:40:48.9276720Z     },
2026-06-15T09:40:48.9276800Z     {
2026-06-15T09:40:48.9276892Z       "id": "REQ-PRES-1",
2026-06-15T09:40:48.9278226Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T09:40:48.9278323Z       "requiredStages": [
2026-06-15T09:40:48.9278399Z         "impl",
2026-06-15T09:40:48.9278480Z         "unit",
2026-06-15T09:40:48.9278558Z         "int"
2026-06-15T09:40:48.9278638Z       ],
2026-06-15T09:40:48.9278714Z       "stages": {
2026-06-15T09:40:48.9278791Z         "doc": {
2026-06-15T09:40:48.9278891Z           "complete": true,
2026-06-15T09:40:48.9279106Z           "evidence": [
2026-06-15T09:40:48.9279191Z             {
2026-06-15T09:40:48.9279296Z               "path": "docs/DEFERRED.md",
2026-06-15T09:40:48.9279377Z               "line": 11
2026-06-15T09:40:48.9279454Z             }
2026-06-15T09:40:48.9279535Z           ]
2026-06-15T09:40:48.9279620Z         },
2026-06-15T09:40:48.9279701Z         "impl": {
2026-06-15T09:40:48.9279789Z           "complete": true,
2026-06-15T09:40:48.9279873Z           "evidence": [
2026-06-15T09:40:48.9279945Z             {
2026-06-15T09:40:48.9280065Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9280146Z               "line": 515
2026-06-15T09:40:48.9280221Z             },
2026-06-15T09:40:48.9280297Z             {
2026-06-15T09:40:48.9280418Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9280512Z               "line": 567
2026-06-15T09:40:48.9280583Z             },
2026-06-15T09:40:48.9280670Z             {
2026-06-15T09:40:48.9280780Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9280869Z               "line": 188
2026-06-15T09:40:48.9280949Z             },
2026-06-15T09:40:48.9281030Z             {
2026-06-15T09:40:48.9281132Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9281212Z               "line": 214
2026-06-15T09:40:48.9281292Z             },
2026-06-15T09:40:48.9281370Z             {
2026-06-15T09:40:48.9281484Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9281565Z               "line": 28
2026-06-15T09:40:48.9281641Z             },
2026-06-15T09:40:48.9281718Z             {
2026-06-15T09:40:48.9281818Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9281898Z               "line": 105
2026-06-15T09:40:48.9281980Z             },
2026-06-15T09:40:48.9282166Z             {
2026-06-15T09:40:48.9282275Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9282447Z               "line": 161
2026-06-15T09:40:48.9282523Z             },
2026-06-15T09:40:48.9282600Z             {
2026-06-15T09:40:48.9282714Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9282800Z               "line": 180
2026-06-15T09:40:48.9282881Z             },
2026-06-15T09:40:48.9282958Z             {
2026-06-15T09:40:48.9283081Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9283166Z               "line": 415
2026-06-15T09:40:48.9283247Z             },
2026-06-15T09:40:48.9283323Z             {
2026-06-15T09:40:48.9283431Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9283521Z               "line": 289
2026-06-15T09:40:48.9283607Z             },
2026-06-15T09:40:48.9283684Z             {
2026-06-15T09:40:48.9283798Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9283888Z               "line": 336
2026-06-15T09:40:48.9283970Z             },
2026-06-15T09:40:48.9284056Z             {
2026-06-15T09:40:48.9284169Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9284252Z               "line": 362
2026-06-15T09:40:48.9284332Z             },
2026-06-15T09:40:48.9284408Z             {
2026-06-15T09:40:48.9284518Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9284614Z               "line": 100
2026-06-15T09:40:48.9284689Z             }
2026-06-15T09:40:48.9284770Z           ]
2026-06-15T09:40:48.9284847Z         },
2026-06-15T09:40:48.9284928Z         "int": {
2026-06-15T09:40:48.9285018Z           "complete": true,
2026-06-15T09:40:48.9285095Z           "evidence": [
2026-06-15T09:40:48.9285171Z             {
2026-06-15T09:40:48.9285295Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9285376Z               "line": 559
2026-06-15T09:40:48.9285467Z             },
2026-06-15T09:40:48.9285539Z             {
2026-06-15T09:40:48.9285657Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9285743Z               "line": 678
2026-06-15T09:40:48.9285825Z             },
2026-06-15T09:40:48.9285907Z             {
2026-06-15T09:40:48.9286019Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9286095Z               "line": 1071
2026-06-15T09:40:48.9286176Z             }
2026-06-15T09:40:48.9286256Z           ]
2026-06-15T09:40:48.9286331Z         },
2026-06-15T09:40:48.9286412Z         "unit": {
2026-06-15T09:40:48.9286503Z           "complete": true,
2026-06-15T09:40:48.9286579Z           "evidence": [
2026-06-15T09:40:48.9286656Z             {
2026-06-15T09:40:48.9286760Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9286847Z               "line": 674
2026-06-15T09:40:48.9286928Z             },
2026-06-15T09:40:48.9287012Z             {
2026-06-15T09:40:48.9287133Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9287209Z               "line": 238
2026-06-15T09:40:48.9287290Z             },
2026-06-15T09:40:48.9287360Z             {
2026-06-15T09:40:48.9287476Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9287557Z               "line": 269
2026-06-15T09:40:48.9287633Z             },
2026-06-15T09:40:48.9287709Z             {
2026-06-15T09:40:48.9287829Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9287909Z               "line": 305
2026-06-15T09:40:48.9287990Z             },
2026-06-15T09:40:48.9288068Z             {
2026-06-15T09:40:48.9288173Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T09:40:48.9288257Z               "line": 336
2026-06-15T09:40:48.9288329Z             },
2026-06-15T09:40:48.9288402Z             {
2026-06-15T09:40:48.9288529Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9288614Z               "line": 1165
2026-06-15T09:40:48.9288771Z             },
2026-06-15T09:40:48.9288856Z             {
2026-06-15T09:40:48.9289108Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9289198Z               "line": 1131
2026-06-15T09:40:48.9289274Z             }
2026-06-15T09:40:48.9289356Z           ]
2026-06-15T09:40:48.9289432Z         }
2026-06-15T09:40:48.9289513Z       }
2026-06-15T09:40:48.9289584Z     },
2026-06-15T09:40:48.9289661Z     {
2026-06-15T09:40:48.9289743Z       "id": "REQ-RC-1",
2026-06-15T09:40:48.9291758Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T09:40:48.9291867Z       "requiredStages": [
2026-06-15T09:40:48.9291944Z         "impl",
2026-06-15T09:40:48.9292020Z         "unit",
2026-06-15T09:40:48.9292110Z         "int"
2026-06-15T09:40:48.9292191Z       ],
2026-06-15T09:40:48.9292264Z       "stages": {
2026-06-15T09:40:48.9292345Z         "doc": {
2026-06-15T09:40:48.9292439Z           "complete": false,
2026-06-15T09:40:48.9292531Z           "evidence": []
2026-06-15T09:40:48.9292607Z         },
2026-06-15T09:40:48.9292688Z         "impl": {
2026-06-15T09:40:48.9292768Z           "complete": true,
2026-06-15T09:40:48.9292860Z           "evidence": [
2026-06-15T09:40:48.9292932Z             {
2026-06-15T09:40:48.9293055Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.9293131Z               "line": 895
2026-06-15T09:40:48.9293213Z             },
2026-06-15T09:40:48.9293294Z             {
2026-06-15T09:40:48.9293412Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9293504Z               "line": 1168
2026-06-15T09:40:48.9293580Z             },
2026-06-15T09:40:48.9293655Z             {
2026-06-15T09:40:48.9293774Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9293850Z               "line": 816
2026-06-15T09:40:48.9293930Z             },
2026-06-15T09:40:48.9294010Z             {
2026-06-15T09:40:48.9294124Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9294205Z               "line": 850
2026-06-15T09:40:48.9294287Z             },
2026-06-15T09:40:48.9294372Z             {
2026-06-15T09:40:48.9294467Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9294554Z               "line": 22
2026-06-15T09:40:48.9294630Z             },
2026-06-15T09:40:48.9294706Z             {
2026-06-15T09:40:48.9294812Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9294892Z               "line": 181
2026-06-15T09:40:48.9294977Z             }
2026-06-15T09:40:48.9295053Z           ]
2026-06-15T09:40:48.9295132Z         },
2026-06-15T09:40:48.9295212Z         "int": {
2026-06-15T09:40:48.9295302Z           "complete": true,
2026-06-15T09:40:48.9295383Z           "evidence": [
2026-06-15T09:40:48.9295461Z             {
2026-06-15T09:40:48.9295579Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9295655Z               "line": 252
2026-06-15T09:40:48.9295736Z             },
2026-06-15T09:40:48.9295813Z             {
2026-06-15T09:40:48.9295931Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9296003Z               "line": 279
2026-06-15T09:40:48.9296081Z             },
2026-06-15T09:40:48.9296156Z             {
2026-06-15T09:40:48.9296265Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9296357Z               "line": 404
2026-06-15T09:40:48.9296551Z             }
2026-06-15T09:40:48.9296626Z           ]
2026-06-15T09:40:48.9296798Z         },
2026-06-15T09:40:48.9296882Z         "unit": {
2026-06-15T09:40:48.9296972Z           "complete": true,
2026-06-15T09:40:48.9297054Z           "evidence": [
2026-06-15T09:40:48.9297144Z             {
2026-06-15T09:40:48.9297249Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9297325Z               "line": 1098
2026-06-15T09:40:48.9297402Z             },
2026-06-15T09:40:48.9297478Z             {
2026-06-15T09:40:48.9297582Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9297659Z               "line": 421
2026-06-15T09:40:48.9297741Z             },
2026-06-15T09:40:48.9297812Z             {
2026-06-15T09:40:48.9297906Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9297983Z               "line": 450
2026-06-15T09:40:48.9298070Z             },
2026-06-15T09:40:48.9298150Z             {
2026-06-15T09:40:48.9298245Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9298323Z               "line": 463
2026-06-15T09:40:48.9298413Z             }
2026-06-15T09:40:48.9298493Z           ]
2026-06-15T09:40:48.9298570Z         }
2026-06-15T09:40:48.9298652Z       }
2026-06-15T09:40:48.9298733Z     },
2026-06-15T09:40:48.9298812Z     {
2026-06-15T09:40:48.9298899Z       "id": "REQ-RCVIEW-1",
2026-06-15T09:40:48.9303390Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T09:40:48.9303502Z       "requiredStages": [
2026-06-15T09:40:48.9303572Z         "doc",
2026-06-15T09:40:48.9303662Z         "impl",
2026-06-15T09:40:48.9303735Z         "unit",
2026-06-15T09:40:48.9303821Z         "int"
2026-06-15T09:40:48.9303900Z       ],
2026-06-15T09:40:48.9303977Z       "stages": {
2026-06-15T09:40:48.9304059Z         "doc": {
2026-06-15T09:40:48.9304141Z           "complete": true,
2026-06-15T09:40:48.9304220Z           "evidence": [
2026-06-15T09:40:48.9304310Z             {
2026-06-15T09:40:48.9304405Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9304481Z               "line": 320
2026-06-15T09:40:48.9304565Z             }
2026-06-15T09:40:48.9304646Z           ]
2026-06-15T09:40:48.9304718Z         },
2026-06-15T09:40:48.9304795Z         "impl": {
2026-06-15T09:40:48.9304875Z           "complete": true,
2026-06-15T09:40:48.9304956Z           "evidence": [
2026-06-15T09:40:48.9305032Z             {
2026-06-15T09:40:48.9305152Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T09:40:48.9305242Z               "line": 323
2026-06-15T09:40:48.9305448Z             },
2026-06-15T09:40:48.9305528Z             {
2026-06-15T09:40:48.9305643Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9305805Z               "line": 430
2026-06-15T09:40:48.9305890Z             },
2026-06-15T09:40:48.9305977Z             {
2026-06-15T09:40:48.9306091Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9306177Z               "line": 441
2026-06-15T09:40:48.9306253Z             },
2026-06-15T09:40:48.9306336Z             {
2026-06-15T09:40:48.9306439Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.9306530Z               "line": 41
2026-06-15T09:40:48.9306612Z             },
2026-06-15T09:40:48.9306693Z             {
2026-06-15T09:40:48.9306801Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.9306878Z               "line": 62
2026-06-15T09:40:48.9306955Z             },
2026-06-15T09:40:48.9307031Z             {
2026-06-15T09:40:48.9307144Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.9307234Z               "line": 255
2026-06-15T09:40:48.9307316Z             },
2026-06-15T09:40:48.9307400Z             {
2026-06-15T09:40:48.9307499Z               "path": "crates/spt/src/rc.rs",
2026-06-15T09:40:48.9307585Z               "line": 181
2026-06-15T09:40:48.9307662Z             }
2026-06-15T09:40:48.9307743Z           ]
2026-06-15T09:40:48.9307818Z         },
2026-06-15T09:40:48.9307895Z         "int": {
2026-06-15T09:40:48.9307981Z           "complete": true,
2026-06-15T09:40:48.9308067Z           "evidence": [
2026-06-15T09:40:48.9308143Z             {
2026-06-15T09:40:48.9308258Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9308339Z               "line": 789
2026-06-15T09:40:48.9308419Z             },
2026-06-15T09:40:48.9308500Z             {
2026-06-15T09:40:48.9308620Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9308696Z               "line": 829
2026-06-15T09:40:48.9308782Z             },
2026-06-15T09:40:48.9308854Z             {
2026-06-15T09:40:48.9309063Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9309149Z               "line": 876
2026-06-15T09:40:48.9309226Z             },
2026-06-15T09:40:48.9309302Z             {
2026-06-15T09:40:48.9309402Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9309488Z               "line": 988
2026-06-15T09:40:48.9309565Z             }
2026-06-15T09:40:48.9309640Z           ]
2026-06-15T09:40:48.9309715Z         },
2026-06-15T09:40:48.9309801Z         "unit": {
2026-06-15T09:40:48.9309896Z           "complete": true,
2026-06-15T09:40:48.9309976Z           "evidence": [
2026-06-15T09:40:48.9310060Z             {
2026-06-15T09:40:48.9310161Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.9310248Z               "line": 175
2026-06-15T09:40:48.9310328Z             },
2026-06-15T09:40:48.9310409Z             {
2026-06-15T09:40:48.9310524Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T09:40:48.9310610Z               "line": 195
2026-06-15T09:40:48.9310699Z             }
2026-06-15T09:40:48.9310776Z           ]
2026-06-15T09:40:48.9310853Z         }
2026-06-15T09:40:48.9310929Z       }
2026-06-15T09:40:48.9311000Z     },
2026-06-15T09:40:48.9311086Z     {
2026-06-15T09:40:48.9311178Z       "id": "REQ-REACH-1",
2026-06-15T09:40:48.9311315Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T09:40:48.9311406Z       "requiredStages": [
2026-06-15T09:40:48.9311483Z         "impl",
2026-06-15T09:40:48.9311563Z         "unit",
2026-06-15T09:40:48.9311644Z         "int"
2026-06-15T09:40:48.9311725Z       ],
2026-06-15T09:40:48.9311807Z       "stages": {
2026-06-15T09:40:48.9311892Z         "doc": {
2026-06-15T09:40:48.9311982Z           "complete": false,
2026-06-15T09:40:48.9312070Z           "evidence": []
2026-06-15T09:40:48.9312141Z         },
2026-06-15T09:40:48.9312226Z         "impl": {
2026-06-15T09:40:48.9312427Z           "complete": true,
2026-06-15T09:40:48.9312508Z           "evidence": [
2026-06-15T09:40:48.9312677Z             {
2026-06-15T09:40:48.9312788Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9312879Z               "line": 430
2026-06-15T09:40:48.9312959Z             },
2026-06-15T09:40:48.9313031Z             {
2026-06-15T09:40:48.9313136Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9313226Z               "line": 76
2026-06-15T09:40:48.9313307Z             },
2026-06-15T09:40:48.9313389Z             {
2026-06-15T09:40:48.9313499Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9313583Z               "line": 222
2026-06-15T09:40:48.9313655Z             },
2026-06-15T09:40:48.9313737Z             {
2026-06-15T09:40:48.9313842Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9313932Z               "line": 422
2026-06-15T09:40:48.9314009Z             },
2026-06-15T09:40:48.9314104Z             {
2026-06-15T09:40:48.9314208Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9314295Z               "line": 529
2026-06-15T09:40:48.9314386Z             },
2026-06-15T09:40:48.9314465Z             {
2026-06-15T09:40:48.9314576Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:40:48.9314658Z               "line": 39
2026-06-15T09:40:48.9314738Z             },
2026-06-15T09:40:48.9314818Z             {
2026-06-15T09:40:48.9314917Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.9315009Z               "line": 239
2026-06-15T09:40:48.9315088Z             },
2026-06-15T09:40:48.9315168Z             {
2026-06-15T09:40:48.9315278Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:40:48.9315360Z               "line": 88
2026-06-15T09:40:48.9315435Z             },
2026-06-15T09:40:48.9315507Z             {
2026-06-15T09:40:48.9315617Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:40:48.9315707Z               "line": 98
2026-06-15T09:40:48.9315792Z             },
2026-06-15T09:40:48.9315873Z             {
2026-06-15T09:40:48.9315994Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9316079Z               "line": 229
2026-06-15T09:40:48.9316160Z             }
2026-06-15T09:40:48.9316232Z           ]
2026-06-15T09:40:48.9316313Z         },
2026-06-15T09:40:48.9316390Z         "int": {
2026-06-15T09:40:48.9316470Z           "complete": true,
2026-06-15T09:40:48.9316556Z           "evidence": [
2026-06-15T09:40:48.9316642Z             {
2026-06-15T09:40:48.9316765Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9316857Z               "line": 415
2026-06-15T09:40:48.9316938Z             },
2026-06-15T09:40:48.9317023Z             {
2026-06-15T09:40:48.9317142Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9317235Z               "line": 516
2026-06-15T09:40:48.9317318Z             },
2026-06-15T09:40:48.9317400Z             {
2026-06-15T09:40:48.9317520Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9317615Z               "line": 904
2026-06-15T09:40:48.9317695Z             },
2026-06-15T09:40:48.9317775Z             {
2026-06-15T09:40:48.9317890Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9317983Z               "line": 1199
2026-06-15T09:40:48.9318064Z             }
2026-06-15T09:40:48.9318145Z           ]
2026-06-15T09:40:48.9318222Z         },
2026-06-15T09:40:48.9318307Z         "unit": {
2026-06-15T09:40:48.9318397Z           "complete": true,
2026-06-15T09:40:48.9318484Z           "evidence": [
2026-06-15T09:40:48.9318565Z             {
2026-06-15T09:40:48.9318674Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9318765Z               "line": 639
2026-06-15T09:40:48.9318833Z             },
2026-06-15T09:40:48.9318913Z             {
2026-06-15T09:40:48.9319099Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T09:40:48.9319280Z               "line": 660
2026-06-15T09:40:48.9319361Z             },
2026-06-15T09:40:48.9319524Z             {
2026-06-15T09:40:48.9319647Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T09:40:48.9319724Z               "line": 646
2026-06-15T09:40:48.9319815Z             },
2026-06-15T09:40:48.9319899Z             {
2026-06-15T09:40:48.9320005Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:40:48.9320087Z               "line": 93
2026-06-15T09:40:48.9320163Z             },
2026-06-15T09:40:48.9320248Z             {
2026-06-15T09:40:48.9320351Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T09:40:48.9320433Z               "line": 224
2026-06-15T09:40:48.9320517Z             },
2026-06-15T09:40:48.9320598Z             {
2026-06-15T09:40:48.9320712Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:40:48.9320789Z               "line": 96
2026-06-15T09:40:48.9320874Z             },
2026-06-15T09:40:48.9320950Z             {
2026-06-15T09:40:48.9321051Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T09:40:48.9321146Z               "line": 146
2026-06-15T09:40:48.9321227Z             },
2026-06-15T09:40:48.9321308Z             {
2026-06-15T09:40:48.9321404Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.9321489Z               "line": 529
2026-06-15T09:40:48.9321570Z             },
2026-06-15T09:40:48.9321647Z             {
2026-06-15T09:40:48.9321756Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:40:48.9321837Z               "line": 118
2026-06-15T09:40:48.9321913Z             },
2026-06-15T09:40:48.9321995Z             {
2026-06-15T09:40:48.9322100Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T09:40:48.9322181Z               "line": 148
2026-06-15T09:40:48.9322266Z             },
2026-06-15T09:40:48.9322344Z             {
2026-06-15T09:40:48.9322452Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9322548Z               "line": 804
2026-06-15T09:40:48.9322630Z             }
2026-06-15T09:40:48.9322711Z           ]
2026-06-15T09:40:48.9322786Z         }
2026-06-15T09:40:48.9322863Z       }
2026-06-15T09:40:48.9322940Z     },
2026-06-15T09:40:48.9323016Z     {
2026-06-15T09:40:48.9323110Z       "id": "REQ-REACH-2",
2026-06-15T09:40:48.9323257Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T09:40:48.9323358Z       "requiredStages": [],
2026-06-15T09:40:48.9323434Z       "stages": {
2026-06-15T09:40:48.9323509Z         "doc": {
2026-06-15T09:40:48.9323601Z           "complete": false,
2026-06-15T09:40:48.9323696Z           "evidence": []
2026-06-15T09:40:48.9323772Z         },
2026-06-15T09:40:48.9323853Z         "impl": {
2026-06-15T09:40:48.9323944Z           "complete": false,
2026-06-15T09:40:48.9324025Z           "evidence": []
2026-06-15T09:40:48.9324106Z         },
2026-06-15T09:40:48.9324187Z         "int": {
2026-06-15T09:40:48.9324269Z           "complete": false,
2026-06-15T09:40:48.9324359Z           "evidence": []
2026-06-15T09:40:48.9324444Z         },
2026-06-15T09:40:48.9324525Z         "unit": {
2026-06-15T09:40:48.9324603Z           "complete": false,
2026-06-15T09:40:48.9324697Z           "evidence": []
2026-06-15T09:40:48.9324773Z         }
2026-06-15T09:40:48.9324855Z       }
2026-06-15T09:40:48.9324941Z     },
2026-06-15T09:40:48.9325016Z     {
2026-06-15T09:40:48.9325107Z       "id": "REQ-REL-1",
2026-06-15T09:40:48.9325468Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T09:40:48.9325569Z       "requiredStages": [
2026-06-15T09:40:48.9325658Z         "doc",
2026-06-15T09:40:48.9325733Z         "impl"
2026-06-15T09:40:48.9325814Z       ],
2026-06-15T09:40:48.9325896Z       "stages": {
2026-06-15T09:40:48.9325973Z         "doc": {
2026-06-15T09:40:48.9326057Z           "complete": true,
2026-06-15T09:40:48.9326221Z           "evidence": [
2026-06-15T09:40:48.9326301Z             {
2026-06-15T09:40:48.9326511Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T09:40:48.9326686Z               "line": 3
2026-06-15T09:40:48.9326763Z             }
2026-06-15T09:40:48.9326845Z           ]
2026-06-15T09:40:48.9326925Z         },
2026-06-15T09:40:48.9327015Z         "impl": {
2026-06-15T09:40:48.9327107Z           "complete": true,
2026-06-15T09:40:48.9327189Z           "evidence": [
2026-06-15T09:40:48.9327279Z             {
2026-06-15T09:40:48.9327402Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T09:40:48.9327489Z               "line": 11
2026-06-15T09:40:48.9327559Z             },
2026-06-15T09:40:48.9327636Z             {
2026-06-15T09:40:48.9327747Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9327828Z               "line": 265
2026-06-15T09:40:48.9327907Z             }
2026-06-15T09:40:48.9327989Z           ]
2026-06-15T09:40:48.9328071Z         },
2026-06-15T09:40:48.9328157Z         "int": {
2026-06-15T09:40:48.9328245Z           "complete": false,
2026-06-15T09:40:48.9328335Z           "evidence": []
2026-06-15T09:40:48.9328412Z         },
2026-06-15T09:40:48.9328492Z         "unit": {
2026-06-15T09:40:48.9328581Z           "complete": false,
2026-06-15T09:40:48.9328671Z           "evidence": []
2026-06-15T09:40:48.9328748Z         }
2026-06-15T09:40:48.9328825Z       }
2026-06-15T09:40:48.9328905Z     },
2026-06-15T09:40:48.9329044Z     {
2026-06-15T09:40:48.9329139Z       "id": "REQ-REL-2",
2026-06-15T09:40:48.9329592Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T09:40:48.9329693Z       "requiredStages": [
2026-06-15T09:40:48.9329778Z         "impl",
2026-06-15T09:40:48.9329850Z         "int"
2026-06-15T09:40:48.9329931Z       ],
2026-06-15T09:40:48.9330018Z       "stages": {
2026-06-15T09:40:48.9330098Z         "doc": {
2026-06-15T09:40:48.9330178Z           "complete": true,
2026-06-15T09:40:48.9330269Z           "evidence": [
2026-06-15T09:40:48.9330347Z             {
2026-06-15T09:40:48.9330459Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T09:40:48.9330546Z               "line": 6
2026-06-15T09:40:48.9330623Z             }
2026-06-15T09:40:48.9330704Z           ]
2026-06-15T09:40:48.9330774Z         },
2026-06-15T09:40:48.9330855Z         "impl": {
2026-06-15T09:40:48.9330940Z           "complete": true,
2026-06-15T09:40:48.9331026Z           "evidence": [
2026-06-15T09:40:48.9331115Z             {
2026-06-15T09:40:48.9331219Z               "path": ".github/workflows/release.yml",
2026-06-15T09:40:48.9331306Z               "line": 16
2026-06-15T09:40:48.9331378Z             },
2026-06-15T09:40:48.9331463Z             {
2026-06-15T09:40:48.9331573Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9331649Z               "line": 352
2026-06-15T09:40:48.9331730Z             },
2026-06-15T09:40:48.9331806Z             {
2026-06-15T09:40:48.9331911Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9331987Z               "line": 426
2026-06-15T09:40:48.9332064Z             },
2026-06-15T09:40:48.9332144Z             {
2026-06-15T09:40:48.9332241Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9332321Z               "line": 588
2026-06-15T09:40:48.9332397Z             },
2026-06-15T09:40:48.9332483Z             {
2026-06-15T09:40:48.9332570Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9332660Z               "line": 720
2026-06-15T09:40:48.9332736Z             }
2026-06-15T09:40:48.9332812Z           ]
2026-06-15T09:40:48.9332895Z         },
2026-06-15T09:40:48.9332974Z         "int": {
2026-06-15T09:40:48.9333065Z           "complete": true,
2026-06-15T09:40:48.9333146Z           "evidence": [
2026-06-15T09:40:48.9333229Z             {
2026-06-15T09:40:48.9333456Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T09:40:48.9333543Z               "line": 13
2026-06-15T09:40:48.9333713Z             }
2026-06-15T09:40:48.9333788Z           ]
2026-06-15T09:40:48.9333875Z         },
2026-06-15T09:40:48.9333957Z         "unit": {
2026-06-15T09:40:48.9334046Z           "complete": false,
2026-06-15T09:40:48.9334136Z           "evidence": []
2026-06-15T09:40:48.9334209Z         }
2026-06-15T09:40:48.9334285Z       }
2026-06-15T09:40:48.9334366Z     },
2026-06-15T09:40:48.9334451Z     {
2026-06-15T09:40:48.9334538Z       "id": "REQ-REL-3",
2026-06-15T09:40:48.9334957Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T09:40:48.9335052Z       "requiredStages": [
2026-06-15T09:40:48.9335130Z         "impl",
2026-06-15T09:40:48.9335206Z         "unit"
2026-06-15T09:40:48.9335281Z       ],
2026-06-15T09:40:48.9335366Z       "stages": {
2026-06-15T09:40:48.9335449Z         "doc": {
2026-06-15T09:40:48.9338172Z           "complete": false,
2026-06-15T09:40:48.9338292Z           "evidence": []
2026-06-15T09:40:48.9338373Z         },
2026-06-15T09:40:48.9338458Z         "impl": {
2026-06-15T09:40:48.9338553Z           "complete": true,
2026-06-15T09:40:48.9338645Z           "evidence": [
2026-06-15T09:40:48.9338722Z             {
2026-06-15T09:40:48.9338853Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9339034Z               "line": 237
2026-06-15T09:40:48.9339109Z             },
2026-06-15T09:40:48.9339194Z             {
2026-06-15T09:40:48.9339313Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9339395Z               "line": 289
2026-06-15T09:40:48.9339475Z             },
2026-06-15T09:40:48.9339556Z             {
2026-06-15T09:40:48.9339662Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9339743Z               "line": 329
2026-06-15T09:40:48.9339837Z             },
2026-06-15T09:40:48.9339905Z             {
2026-06-15T09:40:48.9340005Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9340091Z               "line": 353
2026-06-15T09:40:48.9340171Z             },
2026-06-15T09:40:48.9340253Z             {
2026-06-15T09:40:48.9340357Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9340433Z               "line": 394
2026-06-15T09:40:48.9340514Z             }
2026-06-15T09:40:48.9340592Z           ]
2026-06-15T09:40:48.9340667Z         },
2026-06-15T09:40:48.9340748Z         "int": {
2026-06-15T09:40:48.9340844Z           "complete": false,
2026-06-15T09:40:48.9340926Z           "evidence": []
2026-06-15T09:40:48.9341010Z         },
2026-06-15T09:40:48.9341092Z         "unit": {
2026-06-15T09:40:48.9341179Z           "complete": true,
2026-06-15T09:40:48.9341255Z           "evidence": [
2026-06-15T09:40:48.9341334Z             {
2026-06-15T09:40:48.9341452Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9341544Z               "line": 992
2026-06-15T09:40:48.9341624Z             },
2026-06-15T09:40:48.9341703Z             {
2026-06-15T09:40:48.9341803Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9341890Z               "line": 1051
2026-06-15T09:40:48.9341966Z             }
2026-06-15T09:40:48.9342046Z           ]
2026-06-15T09:40:48.9342123Z         }
2026-06-15T09:40:48.9342200Z       }
2026-06-15T09:40:48.9342276Z     },
2026-06-15T09:40:48.9342351Z     {
2026-06-15T09:40:48.9342447Z       "id": "REQ-RUN-PICKER",
2026-06-15T09:40:48.9347182Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T09:40:48.9347525Z       "requiredStages": [
2026-06-15T09:40:48.9347613Z         "doc",
2026-06-15T09:40:48.9347689Z         "impl",
2026-06-15T09:40:48.9347769Z         "unit"
2026-06-15T09:40:48.9347849Z       ],
2026-06-15T09:40:48.9347928Z       "stages": {
2026-06-15T09:40:48.9348008Z         "doc": {
2026-06-15T09:40:48.9348103Z           "complete": true,
2026-06-15T09:40:48.9348189Z           "evidence": [
2026-06-15T09:40:48.9348266Z             {
2026-06-15T09:40:48.9348361Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9348437Z               "line": 324
2026-06-15T09:40:48.9348523Z             }
2026-06-15T09:40:48.9348595Z           ]
2026-06-15T09:40:48.9348675Z         },
2026-06-15T09:40:48.9348757Z         "impl": {
2026-06-15T09:40:48.9348847Z           "complete": true,
2026-06-15T09:40:48.9348919Z           "evidence": [
2026-06-15T09:40:48.9349090Z             {
2026-06-15T09:40:48.9349201Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9349286Z               "line": 861
2026-06-15T09:40:48.9349361Z             },
2026-06-15T09:40:48.9349437Z             {
2026-06-15T09:40:48.9349537Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9349617Z               "line": 871
2026-06-15T09:40:48.9349697Z             },
2026-06-15T09:40:48.9349773Z             {
2026-06-15T09:40:48.9349883Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:40:48.9349970Z               "line": 9
2026-06-15T09:40:48.9350044Z             },
2026-06-15T09:40:48.9350121Z             {
2026-06-15T09:40:48.9350222Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T09:40:48.9350303Z               "line": 67
2026-06-15T09:40:48.9350383Z             },
2026-06-15T09:40:48.9350450Z             {
2026-06-15T09:40:48.9350551Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T09:40:48.9350642Z               "line": 16
2026-06-15T09:40:48.9350717Z             },
2026-06-15T09:40:48.9350799Z             {
2026-06-15T09:40:48.9350899Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T09:40:48.9350989Z               "line": 249
2026-06-15T09:40:48.9351066Z             },
2026-06-15T09:40:48.9351147Z             {
2026-06-15T09:40:48.9351256Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9351341Z               "line": 11
2026-06-15T09:40:48.9351414Z             },
2026-06-15T09:40:48.9351496Z             {
2026-06-15T09:40:48.9351603Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9351685Z               "line": 85
2026-06-15T09:40:48.9351767Z             },
2026-06-15T09:40:48.9351844Z             {
2026-06-15T09:40:48.9351951Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9352031Z               "line": 452
2026-06-15T09:40:48.9352108Z             },
2026-06-15T09:40:48.9352297Z             {
2026-06-15T09:40:48.9352397Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9352564Z               "line": 533
2026-06-15T09:40:48.9352640Z             },
2026-06-15T09:40:48.9352717Z             {
2026-06-15T09:40:48.9352836Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9352916Z               "line": 586
2026-06-15T09:40:48.9352992Z             },
2026-06-15T09:40:48.9353070Z             {
2026-06-15T09:40:48.9353185Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9353264Z               "line": 8
2026-06-15T09:40:48.9353337Z             }
2026-06-15T09:40:48.9353419Z           ]
2026-06-15T09:40:48.9353498Z         },
2026-06-15T09:40:48.9353574Z         "int": {
2026-06-15T09:40:48.9353656Z           "complete": false,
2026-06-15T09:40:48.9353738Z           "evidence": []
2026-06-15T09:40:48.9353808Z         },
2026-06-15T09:40:48.9353884Z         "unit": {
2026-06-15T09:40:48.9353976Z           "complete": true,
2026-06-15T09:40:48.9354067Z           "evidence": [
2026-06-15T09:40:48.9354146Z             {
2026-06-15T09:40:48.9354247Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9354324Z               "line": 6138
2026-06-15T09:40:48.9354401Z             },
2026-06-15T09:40:48.9354480Z             {
2026-06-15T09:40:48.9354581Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9354659Z               "line": 6149
2026-06-15T09:40:48.9354739Z             },
2026-06-15T09:40:48.9354814Z             {
2026-06-15T09:40:48.9354923Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9355005Z               "line": 737
2026-06-15T09:40:48.9355086Z             },
2026-06-15T09:40:48.9355171Z             {
2026-06-15T09:40:48.9355276Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9355358Z               "line": 744
2026-06-15T09:40:48.9355434Z             },
2026-06-15T09:40:48.9355510Z             {
2026-06-15T09:40:48.9355611Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9355701Z               "line": 761
2026-06-15T09:40:48.9355781Z             },
2026-06-15T09:40:48.9355862Z             {
2026-06-15T09:40:48.9355973Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9356044Z               "line": 781
2026-06-15T09:40:48.9356124Z             },
2026-06-15T09:40:48.9356201Z             {
2026-06-15T09:40:48.9356311Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9356392Z               "line": 795
2026-06-15T09:40:48.9356459Z             },
2026-06-15T09:40:48.9356540Z             {
2026-06-15T09:40:48.9356635Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9356725Z               "line": 804
2026-06-15T09:40:48.9356802Z             },
2026-06-15T09:40:48.9356884Z             {
2026-06-15T09:40:48.9356988Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9357059Z               "line": 815
2026-06-15T09:40:48.9357144Z             },
2026-06-15T09:40:48.9357221Z             {
2026-06-15T09:40:48.9357333Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9357409Z               "line": 837
2026-06-15T09:40:48.9357490Z             },
2026-06-15T09:40:48.9357571Z             {
2026-06-15T09:40:48.9357676Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9357756Z               "line": 856
2026-06-15T09:40:48.9357833Z             },
2026-06-15T09:40:48.9357910Z             {
2026-06-15T09:40:48.9358010Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9358095Z               "line": 893
2026-06-15T09:40:48.9358173Z             },
2026-06-15T09:40:48.9358249Z             {
2026-06-15T09:40:48.9358348Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9358424Z               "line": 922
2026-06-15T09:40:48.9358502Z             },
2026-06-15T09:40:48.9358582Z             {
2026-06-15T09:40:48.9358763Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9358840Z               "line": 935
2026-06-15T09:40:48.9359078Z             },
2026-06-15T09:40:48.9359160Z             {
2026-06-15T09:40:48.9359264Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9359345Z               "line": 979
2026-06-15T09:40:48.9359422Z             },
2026-06-15T09:40:48.9359498Z             {
2026-06-15T09:40:48.9359602Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9359678Z               "line": 1006
2026-06-15T09:40:48.9359756Z             },
2026-06-15T09:40:48.9359832Z             {
2026-06-15T09:40:48.9359931Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T09:40:48.9360011Z               "line": 1022
2026-06-15T09:40:48.9360088Z             },
2026-06-15T09:40:48.9360163Z             {
2026-06-15T09:40:48.9360267Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9360347Z               "line": 419
2026-06-15T09:40:48.9360433Z             },
2026-06-15T09:40:48.9360515Z             {
2026-06-15T09:40:48.9360628Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9360700Z               "line": 431
2026-06-15T09:40:48.9360787Z             },
2026-06-15T09:40:48.9360859Z             {
2026-06-15T09:40:48.9360957Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9361035Z               "line": 449
2026-06-15T09:40:48.9361111Z             },
2026-06-15T09:40:48.9361192Z             {
2026-06-15T09:40:48.9361291Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9361374Z               "line": 471
2026-06-15T09:40:48.9361454Z             },
2026-06-15T09:40:48.9361535Z             {
2026-06-15T09:40:48.9361635Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9361717Z               "line": 481
2026-06-15T09:40:48.9361793Z             },
2026-06-15T09:40:48.9361859Z             {
2026-06-15T09:40:48.9361964Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T09:40:48.9362051Z               "line": 504
2026-06-15T09:40:48.9362126Z             }
2026-06-15T09:40:48.9362203Z           ]
2026-06-15T09:40:48.9362284Z         }
2026-06-15T09:40:48.9362361Z       }
2026-06-15T09:40:48.9362441Z     },
2026-06-15T09:40:48.9362526Z     {
2026-06-15T09:40:48.9362616Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T09:40:48.9367201Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T09:40:48.9367410Z       "requiredStages": [
2026-06-15T09:40:48.9367492Z         "doc",
2026-06-15T09:40:48.9367671Z         "impl",
2026-06-15T09:40:48.9367752Z         "unit"
2026-06-15T09:40:48.9367828Z       ],
2026-06-15T09:40:48.9367903Z       "stages": {
2026-06-15T09:40:48.9367979Z         "doc": {
2026-06-15T09:40:48.9368060Z           "complete": true,
2026-06-15T09:40:48.9368146Z           "evidence": [
2026-06-15T09:40:48.9368227Z             {
2026-06-15T09:40:48.9368321Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9368413Z               "line": 347
2026-06-15T09:40:48.9368485Z             }
2026-06-15T09:40:48.9368570Z           ]
2026-06-15T09:40:48.9368646Z         },
2026-06-15T09:40:48.9368728Z         "impl": {
2026-06-15T09:40:48.9368818Z           "complete": true,
2026-06-15T09:40:48.9368898Z           "evidence": [
2026-06-15T09:40:48.9369053Z             {
2026-06-15T09:40:48.9369176Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9369275Z               "line": 39
2026-06-15T09:40:48.9369347Z             },
2026-06-15T09:40:48.9369433Z             {
2026-06-15T09:40:48.9369547Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9369623Z               "line": 79
2026-06-15T09:40:48.9369711Z             },
2026-06-15T09:40:48.9369790Z             {
2026-06-15T09:40:48.9369910Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9369982Z               "line": 162
2026-06-15T09:40:48.9370063Z             }
2026-06-15T09:40:48.9370143Z           ]
2026-06-15T09:40:48.9370220Z         },
2026-06-15T09:40:48.9370302Z         "int": {
2026-06-15T09:40:48.9370378Z           "complete": false,
2026-06-15T09:40:48.9370462Z           "evidence": []
2026-06-15T09:40:48.9370533Z         },
2026-06-15T09:40:48.9370610Z         "unit": {
2026-06-15T09:40:48.9370691Z           "complete": true,
2026-06-15T09:40:48.9370770Z           "evidence": [
2026-06-15T09:40:48.9370864Z             {
2026-06-15T09:40:48.9370980Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9371070Z               "line": 206
2026-06-15T09:40:48.9371151Z             },
2026-06-15T09:40:48.9371222Z             {
2026-06-15T09:40:48.9371323Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9371404Z               "line": 222
2026-06-15T09:40:48.9371480Z             },
2026-06-15T09:40:48.9371556Z             {
2026-06-15T09:40:48.9371671Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9371748Z               "line": 238
2026-06-15T09:40:48.9371851Z             },
2026-06-15T09:40:48.9371953Z             {
2026-06-15T09:40:48.9372081Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9372161Z               "line": 251
2026-06-15T09:40:48.9372244Z             },
2026-06-15T09:40:48.9372320Z             {
2026-06-15T09:40:48.9372429Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T09:40:48.9372515Z               "line": 258
2026-06-15T09:40:48.9372592Z             }
2026-06-15T09:40:48.9372677Z           ]
2026-06-15T09:40:48.9372758Z         }
2026-06-15T09:40:48.9372835Z       }
2026-06-15T09:40:48.9372912Z     },
2026-06-15T09:40:48.9372983Z     {
2026-06-15T09:40:48.9373081Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T09:40:48.9373257Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T09:40:48.9373351Z       "requiredStages": [
2026-06-15T09:40:48.9373431Z         "impl",
2026-06-15T09:40:48.9373503Z         "unit"
2026-06-15T09:40:48.9373585Z       ],
2026-06-15T09:40:48.9373661Z       "stages": {
2026-06-15T09:40:48.9373736Z         "doc": {
2026-06-15T09:40:48.9373817Z           "complete": false,
2026-06-15T09:40:48.9373909Z           "evidence": []
2026-06-15T09:40:48.9373986Z         },
2026-06-15T09:40:48.9374065Z         "impl": {
2026-06-15T09:40:48.9374152Z           "complete": true,
2026-06-15T09:40:48.9374228Z           "evidence": [
2026-06-15T09:40:48.9374408Z             {
2026-06-15T09:40:48.9374519Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9374699Z               "line": 18
2026-06-15T09:40:48.9374776Z             },
2026-06-15T09:40:48.9374854Z             {
2026-06-15T09:40:48.9374953Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9375033Z               "line": 35
2026-06-15T09:40:48.9375111Z             },
2026-06-15T09:40:48.9375192Z             {
2026-06-15T09:40:48.9375301Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9375377Z               "line": 72
2026-06-15T09:40:48.9375454Z             }
2026-06-15T09:40:48.9375535Z           ]
2026-06-15T09:40:48.9375615Z         },
2026-06-15T09:40:48.9375687Z         "int": {
2026-06-15T09:40:48.9375774Z           "complete": false,
2026-06-15T09:40:48.9375864Z           "evidence": []
2026-06-15T09:40:48.9375943Z         },
2026-06-15T09:40:48.9376020Z         "unit": {
2026-06-15T09:40:48.9376115Z           "complete": true,
2026-06-15T09:40:48.9376202Z           "evidence": [
2026-06-15T09:40:48.9376296Z             {
2026-06-15T09:40:48.9376402Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9376492Z               "line": 224
2026-06-15T09:40:48.9376568Z             },
2026-06-15T09:40:48.9376644Z             {
2026-06-15T09:40:48.9376755Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9376830Z               "line": 241
2026-06-15T09:40:48.9376911Z             },
2026-06-15T09:40:48.9376988Z             {
2026-06-15T09:40:48.9377094Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9377178Z               "line": 250
2026-06-15T09:40:48.9377259Z             }
2026-06-15T09:40:48.9377331Z           ]
2026-06-15T09:40:48.9377413Z         }
2026-06-15T09:40:48.9377493Z       }
2026-06-15T09:40:48.9377569Z     },
2026-06-15T09:40:48.9377651Z     {
2026-06-15T09:40:48.9377742Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T09:40:48.9377888Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T09:40:48.9377985Z       "requiredStages": [
2026-06-15T09:40:48.9378057Z         "impl",
2026-06-15T09:40:48.9378132Z         "unit"
2026-06-15T09:40:48.9378208Z       ],
2026-06-15T09:40:48.9378283Z       "stages": {
2026-06-15T09:40:48.9378360Z         "doc": {
2026-06-15T09:40:48.9378440Z           "complete": false,
2026-06-15T09:40:48.9378525Z           "evidence": []
2026-06-15T09:40:48.9378600Z         },
2026-06-15T09:40:48.9378682Z         "impl": {
2026-06-15T09:40:48.9378773Z           "complete": true,
2026-06-15T09:40:48.9378858Z           "evidence": [
2026-06-15T09:40:48.9379030Z             {
2026-06-15T09:40:48.9379144Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9379234Z               "line": 474
2026-06-15T09:40:48.9379308Z             }
2026-06-15T09:40:48.9379383Z           ]
2026-06-15T09:40:48.9379459Z         },
2026-06-15T09:40:48.9379549Z         "int": {
2026-06-15T09:40:48.9379641Z           "complete": false,
2026-06-15T09:40:48.9379726Z           "evidence": []
2026-06-15T09:40:48.9379807Z         },
2026-06-15T09:40:48.9379883Z         "unit": {
2026-06-15T09:40:48.9379975Z           "complete": true,
2026-06-15T09:40:48.9380050Z           "evidence": [
2026-06-15T09:40:48.9380126Z             {
2026-06-15T09:40:48.9380247Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9380327Z               "line": 843
2026-06-15T09:40:48.9380403Z             }
2026-06-15T09:40:48.9380484Z           ]
2026-06-15T09:40:48.9380562Z         }
2026-06-15T09:40:48.9380633Z       }
2026-06-15T09:40:48.9380713Z     },
2026-06-15T09:40:48.9380794Z     {
2026-06-15T09:40:48.9380881Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T09:40:48.9381060Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T09:40:48.9381150Z       "requiredStages": [
2026-06-15T09:40:48.9381227Z         "impl",
2026-06-15T09:40:48.9381406Z         "unit",
2026-06-15T09:40:48.9381487Z         "int"
2026-06-15T09:40:48.9381564Z       ],
2026-06-15T09:40:48.9381740Z       "stages": {
2026-06-15T09:40:48.9381811Z         "doc": {
2026-06-15T09:40:48.9381902Z           "complete": false,
2026-06-15T09:40:48.9381979Z           "evidence": []
2026-06-15T09:40:48.9382059Z         },
2026-06-15T09:40:48.9382145Z         "impl": {
2026-06-15T09:40:48.9382241Z           "complete": true,
2026-06-15T09:40:48.9382317Z           "evidence": [
2026-06-15T09:40:48.9382402Z             {
2026-06-15T09:40:48.9382513Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.9382598Z               "line": 24
2026-06-15T09:40:48.9382669Z             },
2026-06-15T09:40:48.9382750Z             {
2026-06-15T09:40:48.9382865Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9382941Z               "line": 22
2026-06-15T09:40:48.9383018Z             }
2026-06-15T09:40:48.9383099Z           ]
2026-06-15T09:40:48.9383185Z         },
2026-06-15T09:40:48.9383265Z         "int": {
2026-06-15T09:40:48.9383352Z           "complete": true,
2026-06-15T09:40:48.9383443Z           "evidence": [
2026-06-15T09:40:48.9383524Z             {
2026-06-15T09:40:48.9383637Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.9383717Z               "line": 260
2026-06-15T09:40:48.9383794Z             }
2026-06-15T09:40:48.9383864Z           ]
2026-06-15T09:40:48.9383949Z         },
2026-06-15T09:40:48.9384025Z         "unit": {
2026-06-15T09:40:48.9384111Z           "complete": true,
2026-06-15T09:40:48.9384203Z           "evidence": [
2026-06-15T09:40:48.9384278Z             {
2026-06-15T09:40:48.9384387Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.9384474Z               "line": 171
2026-06-15T09:40:48.9384550Z             },
2026-06-15T09:40:48.9384630Z             {
2026-06-15T09:40:48.9384727Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.9384822Z               "line": 200
2026-06-15T09:40:48.9384898Z             },
2026-06-15T09:40:48.9384973Z             {
2026-06-15T09:40:48.9385079Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T09:40:48.9385160Z               "line": 220
2026-06-15T09:40:48.9385246Z             },
2026-06-15T09:40:48.9385317Z             {
2026-06-15T09:40:48.9385428Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9385503Z               "line": 199
2026-06-15T09:40:48.9385580Z             },
2026-06-15T09:40:48.9385661Z             {
2026-06-15T09:40:48.9385775Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9385856Z               "line": 219
2026-06-15T09:40:48.9385932Z             },
2026-06-15T09:40:48.9386010Z             {
2026-06-15T09:40:48.9386104Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9386195Z               "line": 244
2026-06-15T09:40:48.9386267Z             },
2026-06-15T09:40:48.9386348Z             {
2026-06-15T09:40:48.9386466Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9386551Z               "line": 276
2026-06-15T09:40:48.9386637Z             },
2026-06-15T09:40:48.9386710Z             {
2026-06-15T09:40:48.9386809Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9386894Z               "line": 297
2026-06-15T09:40:48.9386967Z             },
2026-06-15T09:40:48.9387043Z             {
2026-06-15T09:40:48.9387143Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T09:40:48.9387233Z               "line": 324
2026-06-15T09:40:48.9387315Z             }
2026-06-15T09:40:48.9387391Z           ]
2026-06-15T09:40:48.9387467Z         }
2026-06-15T09:40:48.9387543Z       }
2026-06-15T09:40:48.9387620Z     },
2026-06-15T09:40:48.9387701Z     {
2026-06-15T09:40:48.9387796Z       "id": "REQ-SEAM-INJECT",
2026-06-15T09:40:48.9387940Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T09:40:48.9388039Z       "requiredStages": [
2026-06-15T09:40:48.9388206Z         "impl",
2026-06-15T09:40:48.9388283Z         "unit"
2026-06-15T09:40:48.9388430Z       ],
2026-06-15T09:40:48.9388507Z       "stages": {
2026-06-15T09:40:48.9388593Z         "doc": {
2026-06-15T09:40:48.9388673Z           "complete": false,
2026-06-15T09:40:48.9388763Z           "evidence": []
2026-06-15T09:40:48.9388838Z         },
2026-06-15T09:40:48.9388920Z         "impl": {
2026-06-15T09:40:48.9389099Z           "complete": true,
2026-06-15T09:40:48.9389180Z           "evidence": [
2026-06-15T09:40:48.9389257Z             {
2026-06-15T09:40:48.9389366Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9389442Z               "line": 19
2026-06-15T09:40:48.9389524Z             },
2026-06-15T09:40:48.9389605Z             {
2026-06-15T09:40:48.9389718Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9389799Z               "line": 111
2026-06-15T09:40:48.9389877Z             }
2026-06-15T09:40:48.9389962Z           ]
2026-06-15T09:40:48.9390033Z         },
2026-06-15T09:40:48.9390114Z         "int": {
2026-06-15T09:40:48.9390211Z           "complete": false,
2026-06-15T09:40:48.9390311Z           "evidence": []
2026-06-15T09:40:48.9390386Z         },
2026-06-15T09:40:48.9390468Z         "unit": {
2026-06-15T09:40:48.9390559Z           "complete": true,
2026-06-15T09:40:48.9390640Z           "evidence": [
2026-06-15T09:40:48.9390710Z             {
2026-06-15T09:40:48.9390821Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9390911Z               "line": 330
2026-06-15T09:40:48.9390987Z             },
2026-06-15T09:40:48.9391064Z             {
2026-06-15T09:40:48.9391160Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9391244Z               "line": 350
2026-06-15T09:40:48.9391330Z             }
2026-06-15T09:40:48.9391408Z           ]
2026-06-15T09:40:48.9391485Z         }
2026-06-15T09:40:48.9391564Z       }
2026-06-15T09:40:48.9391644Z     },
2026-06-15T09:40:48.9391725Z     {
2026-06-15T09:40:48.9391826Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T09:40:48.9391952Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T09:40:48.9392042Z       "requiredStages": [
2026-06-15T09:40:48.9392124Z         "impl",
2026-06-15T09:40:48.9392201Z         "unit"
2026-06-15T09:40:48.9392276Z       ],
2026-06-15T09:40:48.9392352Z       "stages": {
2026-06-15T09:40:48.9392430Z         "doc": {
2026-06-15T09:40:48.9392520Z           "complete": false,
2026-06-15T09:40:48.9392600Z           "evidence": []
2026-06-15T09:40:48.9392691Z         },
2026-06-15T09:40:48.9392764Z         "impl": {
2026-06-15T09:40:48.9392859Z           "complete": true,
2026-06-15T09:40:48.9392938Z           "evidence": [
2026-06-15T09:40:48.9393015Z             {
2026-06-15T09:40:48.9393125Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9393206Z               "line": 18
2026-06-15T09:40:48.9393287Z             },
2026-06-15T09:40:48.9393354Z             {
2026-06-15T09:40:48.9393473Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9393554Z               "line": 353
2026-06-15T09:40:48.9393635Z             }
2026-06-15T09:40:48.9393713Z           ]
2026-06-15T09:40:48.9393792Z         },
2026-06-15T09:40:48.9393868Z         "int": {
2026-06-15T09:40:48.9393960Z           "complete": false,
2026-06-15T09:40:48.9394051Z           "evidence": []
2026-06-15T09:40:48.9394126Z         },
2026-06-15T09:40:48.9394216Z         "unit": {
2026-06-15T09:40:48.9394301Z           "complete": true,
2026-06-15T09:40:48.9394387Z           "evidence": [
2026-06-15T09:40:48.9394462Z             {
2026-06-15T09:40:48.9394570Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9394657Z               "line": 606
2026-06-15T09:40:48.9394739Z             },
2026-06-15T09:40:48.9394814Z             {
2026-06-15T09:40:48.9394914Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9394996Z               "line": 616
2026-06-15T09:40:48.9395176Z             }
2026-06-15T09:40:48.9395258Z           ]
2026-06-15T09:40:48.9395420Z         }
2026-06-15T09:40:48.9395496Z       }
2026-06-15T09:40:48.9395577Z     },
2026-06-15T09:40:48.9395649Z     {
2026-06-15T09:40:48.9395753Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T09:40:48.9395897Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T09:40:48.9395992Z       "requiredStages": [
2026-06-15T09:40:48.9396073Z         "impl",
2026-06-15T09:40:48.9396154Z         "unit",
2026-06-15T09:40:48.9396236Z         "int"
2026-06-15T09:40:48.9396317Z       ],
2026-06-15T09:40:48.9396402Z       "stages": {
2026-06-15T09:40:48.9396478Z         "doc": {
2026-06-15T09:40:48.9396556Z           "complete": false,
2026-06-15T09:40:48.9396646Z           "evidence": []
2026-06-15T09:40:48.9396721Z         },
2026-06-15T09:40:48.9396798Z         "impl": {
2026-06-15T09:40:48.9396885Z           "complete": true,
2026-06-15T09:40:48.9396975Z           "evidence": [
2026-06-15T09:40:48.9397069Z             {
2026-06-15T09:40:48.9397168Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:40:48.9397255Z               "line": 19
2026-06-15T09:40:48.9397327Z             },
2026-06-15T09:40:48.9397398Z             {
2026-06-15T09:40:48.9397497Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T09:40:48.9397584Z               "line": 12
2026-06-15T09:40:48.9397661Z             },
2026-06-15T09:40:48.9397736Z             {
2026-06-15T09:40:48.9397847Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9397923Z               "line": 241
2026-06-15T09:40:48.9398004Z             }
2026-06-15T09:40:48.9398083Z           ]
2026-06-15T09:40:48.9398161Z         },
2026-06-15T09:40:48.9398252Z         "int": {
2026-06-15T09:40:48.9398337Z           "complete": true,
2026-06-15T09:40:48.9398437Z           "evidence": [
2026-06-15T09:40:48.9398509Z             {
2026-06-15T09:40:48.9398632Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.9398718Z               "line": 259
2026-06-15T09:40:48.9398801Z             }
2026-06-15T09:40:48.9398886Z           ]
2026-06-15T09:40:48.9399042Z         },
2026-06-15T09:40:48.9399135Z         "unit": {
2026-06-15T09:40:48.9399220Z           "complete": true,
2026-06-15T09:40:48.9399308Z           "evidence": [
2026-06-15T09:40:48.9399389Z             {
2026-06-15T09:40:48.9399504Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:40:48.9399602Z               "line": 161
2026-06-15T09:40:48.9399683Z             },
2026-06-15T09:40:48.9399755Z             {
2026-06-15T09:40:48.9399850Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:40:48.9399936Z               "line": 168
2026-06-15T09:40:48.9400021Z             },
2026-06-15T09:40:48.9400093Z             {
2026-06-15T09:40:48.9400203Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T09:40:48.9400283Z               "line": 191
2026-06-15T09:40:48.9400360Z             },
2026-06-15T09:40:48.9400447Z             {
2026-06-15T09:40:48.9400561Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:40:48.9400655Z               "line": 106
2026-06-15T09:40:48.9400737Z             },
2026-06-15T09:40:48.9400814Z             {
2026-06-15T09:40:48.9400918Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:40:48.9400994Z               "line": 137
2026-06-15T09:40:48.9401071Z             },
2026-06-15T09:40:48.9401152Z             {
2026-06-15T09:40:48.9401247Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T09:40:48.9401323Z               "line": 161
2026-06-15T09:40:48.9401405Z             }
2026-06-15T09:40:48.9401481Z           ]
2026-06-15T09:40:48.9401557Z         }
2026-06-15T09:40:48.9401633Z       }
2026-06-15T09:40:48.9401711Z     },
2026-06-15T09:40:48.9401786Z     {
2026-06-15T09:40:48.9401877Z       "id": "REQ-SEAM-RESUME",
2026-06-15T09:40:48.9402054Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T09:40:48.9402247Z       "requiredStages": [
2026-06-15T09:40:48.9402324Z         "impl",
2026-06-15T09:40:48.9402483Z         "unit"
2026-06-15T09:40:48.9402574Z       ],
2026-06-15T09:40:48.9402650Z       "stages": {
2026-06-15T09:40:48.9402727Z         "doc": {
2026-06-15T09:40:48.9402822Z           "complete": false,
2026-06-15T09:40:48.9402898Z           "evidence": []
2026-06-15T09:40:48.9402975Z         },
2026-06-15T09:40:48.9403056Z         "impl": {
2026-06-15T09:40:48.9403146Z           "complete": true,
2026-06-15T09:40:48.9403227Z           "evidence": [
2026-06-15T09:40:48.9403304Z             {
2026-06-15T09:40:48.9403414Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.9403489Z               "line": 19
2026-06-15T09:40:48.9403566Z             }
2026-06-15T09:40:48.9403643Z           ]
2026-06-15T09:40:48.9403723Z         },
2026-06-15T09:40:48.9403809Z         "int": {
2026-06-15T09:40:48.9403895Z           "complete": false,
2026-06-15T09:40:48.9403991Z           "evidence": []
2026-06-15T09:40:48.9404071Z         },
2026-06-15T09:40:48.9404147Z         "unit": {
2026-06-15T09:40:48.9404230Z           "complete": true,
2026-06-15T09:40:48.9404320Z           "evidence": [
2026-06-15T09:40:48.9404409Z             {
2026-06-15T09:40:48.9404505Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.9404583Z               "line": 201
2026-06-15T09:40:48.9404663Z             },
2026-06-15T09:40:48.9404733Z             {
2026-06-15T09:40:48.9404828Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.9404909Z               "line": 223
2026-06-15T09:40:48.9404994Z             },
2026-06-15T09:40:48.9405069Z             {
2026-06-15T09:40:48.9407762Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T09:40:48.9407873Z               "line": 244
2026-06-15T09:40:48.9407948Z             }
2026-06-15T09:40:48.9408029Z           ]
2026-06-15T09:40:48.9408111Z         }
2026-06-15T09:40:48.9408187Z       }
2026-06-15T09:40:48.9408282Z     },
2026-06-15T09:40:48.9408358Z     {
2026-06-15T09:40:48.9408454Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T09:40:48.9408559Z       "title": "spawn-session seam",
2026-06-15T09:40:48.9408653Z       "requiredStages": [
2026-06-15T09:40:48.9408736Z         "impl",
2026-06-15T09:40:48.9408816Z         "unit"
2026-06-15T09:40:48.9408897Z       ],
2026-06-15T09:40:48.9409065Z       "stages": {
2026-06-15T09:40:48.9409141Z         "doc": {
2026-06-15T09:40:48.9409222Z           "complete": false,
2026-06-15T09:40:48.9409312Z           "evidence": []
2026-06-15T09:40:48.9409394Z         },
2026-06-15T09:40:48.9409470Z         "impl": {
2026-06-15T09:40:48.9409565Z           "complete": true,
2026-06-15T09:40:48.9409651Z           "evidence": [
2026-06-15T09:40:48.9409728Z             {
2026-06-15T09:40:48.9409850Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9409926Z               "line": 20
2026-06-15T09:40:48.9410007Z             }
2026-06-15T09:40:48.9410088Z           ]
2026-06-15T09:40:48.9410162Z         },
2026-06-15T09:40:48.9410238Z         "int": {
2026-06-15T09:40:48.9410324Z           "complete": false,
2026-06-15T09:40:48.9410411Z           "evidence": []
2026-06-15T09:40:48.9410491Z         },
2026-06-15T09:40:48.9410572Z         "unit": {
2026-06-15T09:40:48.9410659Z           "complete": true,
2026-06-15T09:40:48.9410740Z           "evidence": [
2026-06-15T09:40:48.9410816Z             {
2026-06-15T09:40:48.9410934Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9411016Z               "line": 435
2026-06-15T09:40:48.9411087Z             },
2026-06-15T09:40:48.9411163Z             {
2026-06-15T09:40:48.9411279Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9411359Z               "line": 442
2026-06-15T09:40:48.9411436Z             },
2026-06-15T09:40:48.9411511Z             {
2026-06-15T09:40:48.9411627Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9411835Z               "line": 452
2026-06-15T09:40:48.9411923Z             },
2026-06-15T09:40:48.9411999Z             {
2026-06-15T09:40:48.9412199Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9412276Z               "line": 458
2026-06-15T09:40:48.9412351Z             },
2026-06-15T09:40:48.9412432Z             {
2026-06-15T09:40:48.9412542Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9412633Z               "line": 483
2026-06-15T09:40:48.9412708Z             },
2026-06-15T09:40:48.9412788Z             {
2026-06-15T09:40:48.9412903Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T09:40:48.9412978Z               "line": 520
2026-06-15T09:40:48.9413058Z             }
2026-06-15T09:40:48.9413139Z           ]
2026-06-15T09:40:48.9413215Z         }
2026-06-15T09:40:48.9413292Z       }
2026-06-15T09:40:48.9413373Z     },
2026-06-15T09:40:48.9413448Z     {
2026-06-15T09:40:48.9413545Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T09:40:48.9413716Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T09:40:48.9413801Z       "requiredStages": [
2026-06-15T09:40:48.9413879Z         "impl",
2026-06-15T09:40:48.9413959Z         "unit"
2026-06-15T09:40:48.9414035Z       ],
2026-06-15T09:40:48.9414112Z       "stages": {
2026-06-15T09:40:48.9414193Z         "doc": {
2026-06-15T09:40:48.9414283Z           "complete": false,
2026-06-15T09:40:48.9414359Z           "evidence": []
2026-06-15T09:40:48.9414440Z         },
2026-06-15T09:40:48.9414518Z         "impl": {
2026-06-15T09:40:48.9414603Z           "complete": true,
2026-06-15T09:40:48.9414688Z           "evidence": [
2026-06-15T09:40:48.9414765Z             {
2026-06-15T09:40:48.9414894Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9414969Z               "line": 28
2026-06-15T09:40:48.9415051Z             },
2026-06-15T09:40:48.9415124Z             {
2026-06-15T09:40:48.9415242Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9415336Z               "line": 83
2026-06-15T09:40:48.9415402Z             }
2026-06-15T09:40:48.9415489Z           ]
2026-06-15T09:40:48.9415564Z         },
2026-06-15T09:40:48.9415639Z         "int": {
2026-06-15T09:40:48.9415729Z           "complete": false,
2026-06-15T09:40:48.9415811Z           "evidence": []
2026-06-15T09:40:48.9415893Z         },
2026-06-15T09:40:48.9415967Z         "unit": {
2026-06-15T09:40:48.9416044Z           "complete": true,
2026-06-15T09:40:48.9416131Z           "evidence": [
2026-06-15T09:40:48.9416212Z             {
2026-06-15T09:40:48.9416330Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9416412Z               "line": 286
2026-06-15T09:40:48.9416492Z             },
2026-06-15T09:40:48.9416583Z             {
2026-06-15T09:40:48.9416717Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9416798Z               "line": 297
2026-06-15T09:40:48.9416884Z             }
2026-06-15T09:40:48.9416974Z           ]
2026-06-15T09:40:48.9417051Z         }
2026-06-15T09:40:48.9417141Z       }
2026-06-15T09:40:48.9417222Z     },
2026-06-15T09:40:48.9417298Z     {
2026-06-15T09:40:48.9417380Z       "id": "REQ-SEC-1",
2026-06-15T09:40:48.9417761Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T09:40:48.9417861Z       "requiredStages": [
2026-06-15T09:40:48.9417937Z         "impl",
2026-06-15T09:40:48.9418020Z         "unit"
2026-06-15T09:40:48.9418095Z       ],
2026-06-15T09:40:48.9418184Z       "stages": {
2026-06-15T09:40:48.9418260Z         "doc": {
2026-06-15T09:40:48.9418351Z           "complete": false,
2026-06-15T09:40:48.9418428Z           "evidence": []
2026-06-15T09:40:48.9418504Z         },
2026-06-15T09:40:48.9418589Z         "impl": {
2026-06-15T09:40:48.9418671Z           "complete": true,
2026-06-15T09:40:48.9418757Z           "evidence": [
2026-06-15T09:40:48.9418928Z             {
2026-06-15T09:40:48.9419161Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9419339Z               "line": 86
2026-06-15T09:40:48.9419419Z             },
2026-06-15T09:40:48.9419495Z             {
2026-06-15T09:40:48.9419616Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9419701Z               "line": 116
2026-06-15T09:40:48.9419772Z             },
2026-06-15T09:40:48.9419848Z             {
2026-06-15T09:40:48.9419964Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9420039Z               "line": 130
2026-06-15T09:40:48.9420125Z             },
2026-06-15T09:40:48.9420206Z             {
2026-06-15T09:40:48.9420316Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9420391Z               "line": 109
2026-06-15T09:40:48.9420476Z             },
2026-06-15T09:40:48.9420553Z             {
2026-06-15T09:40:48.9420657Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9420756Z               "line": 130
2026-06-15T09:40:48.9420836Z             },
2026-06-15T09:40:48.9420923Z             {
2026-06-15T09:40:48.9421027Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9421108Z               "line": 143
2026-06-15T09:40:48.9421184Z             },
2026-06-15T09:40:48.9421267Z             {
2026-06-15T09:40:48.9421376Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9421456Z               "line": 209
2026-06-15T09:40:48.9421529Z             },
2026-06-15T09:40:48.9421605Z             {
2026-06-15T09:40:48.9421704Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9421780Z               "line": 235
2026-06-15T09:40:48.9421858Z             },
2026-06-15T09:40:48.9421943Z             {
2026-06-15T09:40:48.9422038Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9422129Z               "line": 4740
2026-06-15T09:40:48.9422215Z             }
2026-06-15T09:40:48.9422291Z           ]
2026-06-15T09:40:48.9422372Z         },
2026-06-15T09:40:48.9422449Z         "int": {
2026-06-15T09:40:48.9422530Z           "complete": false,
2026-06-15T09:40:48.9422620Z           "evidence": []
2026-06-15T09:40:48.9422701Z         },
2026-06-15T09:40:48.9422783Z         "unit": {
2026-06-15T09:40:48.9422878Z           "complete": true,
2026-06-15T09:40:48.9422958Z           "evidence": [
2026-06-15T09:40:48.9423030Z             {
2026-06-15T09:40:48.9423146Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9423221Z               "line": 142
2026-06-15T09:40:48.9423306Z             },
2026-06-15T09:40:48.9423382Z             {
2026-06-15T09:40:48.9423491Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9423580Z               "line": 194
2026-06-15T09:40:48.9423655Z             },
2026-06-15T09:40:48.9423732Z             {
2026-06-15T09:40:48.9423838Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T09:40:48.9423933Z               "line": 235
2026-06-15T09:40:48.9424013Z             },
2026-06-15T09:40:48.9424086Z             {
2026-06-15T09:40:48.9424215Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T09:40:48.9424299Z               "line": 140
2026-06-15T09:40:48.9424381Z             },
2026-06-15T09:40:48.9424458Z             {
2026-06-15T09:40:48.9424567Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9424642Z               "line": 247
2026-06-15T09:40:48.9424720Z             },
2026-06-15T09:40:48.9424801Z             {
2026-06-15T09:40:48.9424901Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9424982Z               "line": 277
2026-06-15T09:40:48.9425059Z             },
2026-06-15T09:40:48.9425140Z             {
2026-06-15T09:40:48.9425249Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9425325Z               "line": 310
2026-06-15T09:40:48.9425402Z             },
2026-06-15T09:40:48.9425478Z             {
2026-06-15T09:40:48.9425679Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9425830Z               "line": 329
2026-06-15T09:40:48.9425906Z             },
2026-06-15T09:40:48.9425987Z             {
2026-06-15T09:40:48.9426091Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9426184Z               "line": 362
2026-06-15T09:40:48.9426265Z             },
2026-06-15T09:40:48.9426347Z             {
2026-06-15T09:40:48.9426453Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T09:40:48.9426537Z               "line": 386
2026-06-15T09:40:48.9426623Z             },
2026-06-15T09:40:48.9426691Z             {
2026-06-15T09:40:48.9426796Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9426866Z               "line": 6690
2026-06-15T09:40:48.9426943Z             }
2026-06-15T09:40:48.9427025Z           ]
2026-06-15T09:40:48.9427106Z         }
2026-06-15T09:40:48.9427181Z       }
2026-06-15T09:40:48.9427258Z     },
2026-06-15T09:40:48.9427335Z     {
2026-06-15T09:40:48.9427415Z       "id": "REQ-SHELL-1",
2026-06-15T09:40:48.9428279Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T09:40:48.9428378Z       "requiredStages": [
2026-06-15T09:40:48.9428459Z         "impl",
2026-06-15T09:40:48.9428537Z         "unit",
2026-06-15T09:40:48.9428613Z         "int"
2026-06-15T09:40:48.9428688Z       ],
2026-06-15T09:40:48.9428768Z       "stages": {
2026-06-15T09:40:48.9428844Z         "doc": {
2026-06-15T09:40:48.9428936Z           "complete": false,
2026-06-15T09:40:48.9429097Z           "evidence": []
2026-06-15T09:40:48.9429168Z         },
2026-06-15T09:40:48.9429251Z         "impl": {
2026-06-15T09:40:48.9429332Z           "complete": true,
2026-06-15T09:40:48.9429421Z           "evidence": [
2026-06-15T09:40:48.9429493Z             {
2026-06-15T09:40:48.9429622Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9429702Z               "line": 94
2026-06-15T09:40:48.9429783Z             },
2026-06-15T09:40:48.9429856Z             {
2026-06-15T09:40:48.9429979Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9430055Z               "line": 121
2026-06-15T09:40:48.9430137Z             },
2026-06-15T09:40:48.9430219Z             {
2026-06-15T09:40:48.9430332Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9430413Z               "line": 27
2026-06-15T09:40:48.9430481Z             },
2026-06-15T09:40:48.9430561Z             {
2026-06-15T09:40:48.9430670Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9430756Z               "line": 52
2026-06-15T09:40:48.9430834Z             },
2026-06-15T09:40:48.9430909Z             {
2026-06-15T09:40:48.9431032Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9431113Z               "line": 132
2026-06-15T09:40:48.9431184Z             },
2026-06-15T09:40:48.9431259Z             {
2026-06-15T09:40:48.9431372Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9431459Z               "line": 164
2026-06-15T09:40:48.9431536Z             },
2026-06-15T09:40:48.9431611Z             {
2026-06-15T09:40:48.9431731Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9431822Z               "line": 22
2026-06-15T09:40:48.9431902Z             },
2026-06-15T09:40:48.9431978Z             {
2026-06-15T09:40:48.9432084Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9432170Z               "line": 65
2026-06-15T09:40:48.9432245Z             },
2026-06-15T09:40:48.9432317Z             {
2026-06-15T09:40:48.9432433Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9432713Z               "line": 76
2026-06-15T09:40:48.9432804Z             },
2026-06-15T09:40:48.9432894Z             {
2026-06-15T09:40:48.9433095Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9433180Z               "line": 150
2026-06-15T09:40:48.9433256Z             },
2026-06-15T09:40:48.9433338Z             {
2026-06-15T09:40:48.9433452Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9433533Z               "line": 209
2026-06-15T09:40:48.9433614Z             },
2026-06-15T09:40:48.9433687Z             {
2026-06-15T09:40:48.9433795Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9433871Z               "line": 249
2026-06-15T09:40:48.9433946Z             },
2026-06-15T09:40:48.9434023Z             {
2026-06-15T09:40:48.9434136Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9434225Z               "line": 270
2026-06-15T09:40:48.9434302Z             },
2026-06-15T09:40:48.9434389Z             {
2026-06-15T09:40:48.9434498Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9434583Z               "line": 283
2026-06-15T09:40:48.9434665Z             },
2026-06-15T09:40:48.9434741Z             {
2026-06-15T09:40:48.9434860Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9434936Z               "line": 217
2026-06-15T09:40:48.9435013Z             },
2026-06-15T09:40:48.9435089Z             {
2026-06-15T09:40:48.9435193Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9435285Z               "line": 233
2026-06-15T09:40:48.9435366Z             },
2026-06-15T09:40:48.9435442Z             {
2026-06-15T09:40:48.9435561Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.9435643Z               "line": 41
2026-06-15T09:40:48.9435718Z             },
2026-06-15T09:40:48.9435795Z             {
2026-06-15T09:40:48.9435910Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.9436005Z               "line": 222
2026-06-15T09:40:48.9436080Z             },
2026-06-15T09:40:48.9436161Z             {
2026-06-15T09:40:48.9436277Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T09:40:48.9436353Z               "line": 160
2026-06-15T09:40:48.9436432Z             },
2026-06-15T09:40:48.9436513Z             {
2026-06-15T09:40:48.9436609Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.9436698Z               "line": 319
2026-06-15T09:40:48.9436778Z             },
2026-06-15T09:40:48.9436859Z             {
2026-06-15T09:40:48.9436965Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T09:40:48.9437046Z               "line": 371
2026-06-15T09:40:48.9437126Z             },
2026-06-15T09:40:48.9437208Z             {
2026-06-15T09:40:48.9437322Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9437403Z               "line": 329
2026-06-15T09:40:48.9437479Z             },
2026-06-15T09:40:48.9437566Z             {
2026-06-15T09:40:48.9437661Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9437745Z               "line": 5454
2026-06-15T09:40:48.9437828Z             },
2026-06-15T09:40:48.9437909Z             {
2026-06-15T09:40:48.9438009Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9438104Z               "line": 5604
2026-06-15T09:40:48.9438181Z             },
2026-06-15T09:40:48.9438257Z             {
2026-06-15T09:40:48.9438361Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9438447Z               "line": 5641
2026-06-15T09:40:48.9438524Z             }
2026-06-15T09:40:48.9438595Z           ]
2026-06-15T09:40:48.9438667Z         },
2026-06-15T09:40:48.9438743Z         "int": {
2026-06-15T09:40:48.9438835Z           "complete": true,
2026-06-15T09:40:48.9438924Z           "evidence": [
2026-06-15T09:40:48.9439082Z             {
2026-06-15T09:40:48.9439206Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9439390Z               "line": 709
2026-06-15T09:40:48.9439481Z             },
2026-06-15T09:40:48.9439559Z             {
2026-06-15T09:40:48.9439776Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:40:48.9439858Z               "line": 8
2026-06-15T09:40:48.9439934Z             },
2026-06-15T09:40:48.9440010Z             {
2026-06-15T09:40:48.9440130Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T09:40:48.9440221Z               "line": 49
2026-06-15T09:40:48.9440300Z             },
2026-06-15T09:40:48.9440373Z             {
2026-06-15T09:40:48.9440492Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9440569Z               "line": 709
2026-06-15T09:40:48.9440644Z             },
2026-06-15T09:40:48.9440726Z             {
2026-06-15T09:40:48.9440844Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9440935Z               "line": 1119
2026-06-15T09:40:48.9441012Z             },
2026-06-15T09:40:48.9441099Z             {
2026-06-15T09:40:48.9441206Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T09:40:48.9441288Z               "line": 17
2026-06-15T09:40:48.9441361Z             },
2026-06-15T09:40:48.9441442Z             {
2026-06-15T09:40:48.9441554Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T09:40:48.9441630Z               "line": 14
2026-06-15T09:40:48.9441711Z             }
2026-06-15T09:40:48.9441791Z           ]
2026-06-15T09:40:48.9441866Z         },
2026-06-15T09:40:48.9441961Z         "unit": {
2026-06-15T09:40:48.9442038Z           "complete": true,
2026-06-15T09:40:48.9442129Z           "evidence": [
2026-06-15T09:40:48.9442205Z             {
2026-06-15T09:40:48.9442319Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9442396Z               "line": 234
2026-06-15T09:40:48.9442477Z             },
2026-06-15T09:40:48.9442558Z             {
2026-06-15T09:40:48.9442669Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9442768Z               "line": 267
2026-06-15T09:40:48.9442848Z             },
2026-06-15T09:40:48.9442935Z             {
2026-06-15T09:40:48.9443044Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9443135Z               "line": 307
2026-06-15T09:40:48.9443211Z             },
2026-06-15T09:40:48.9443278Z             {
2026-06-15T09:40:48.9443397Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9443483Z               "line": 571
2026-06-15T09:40:48.9443559Z             },
2026-06-15T09:40:48.9443642Z             {
2026-06-15T09:40:48.9443754Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9443840Z               "line": 644
2026-06-15T09:40:48.9443903Z             },
2026-06-15T09:40:48.9443984Z             {
2026-06-15T09:40:48.9444088Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9444170Z               "line": 788
2026-06-15T09:40:48.9444242Z             },
2026-06-15T09:40:48.9444327Z             {
2026-06-15T09:40:48.9444436Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9444526Z               "line": 595
2026-06-15T09:40:48.9444612Z             },
2026-06-15T09:40:48.9444686Z             {
2026-06-15T09:40:48.9444804Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T09:40:48.9444891Z               "line": 399
2026-06-15T09:40:48.9444968Z             },
2026-06-15T09:40:48.9445043Z             {
2026-06-15T09:40:48.9445143Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9445230Z               "line": 7236
2026-06-15T09:40:48.9445311Z             },
2026-06-15T09:40:48.9445391Z             {
2026-06-15T09:40:48.9445487Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9445573Z               "line": 7560
2026-06-15T09:40:48.9445654Z             },
2026-06-15T09:40:48.9445730Z             {
2026-06-15T09:40:48.9445830Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9445992Z               "line": 7977
2026-06-15T09:40:48.9446078Z             }
2026-06-15T09:40:48.9446231Z           ]
2026-06-15T09:40:48.9446316Z         }
2026-06-15T09:40:48.9446402Z       }
2026-06-15T09:40:48.9446480Z     },
2026-06-15T09:40:48.9446561Z     {
2026-06-15T09:40:48.9446645Z       "id": "REQ-SHELL-2",
2026-06-15T09:40:48.9448169Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T09:40:48.9448268Z       "requiredStages": [
2026-06-15T09:40:48.9448349Z         "impl",
2026-06-15T09:40:48.9448431Z         "unit",
2026-06-15T09:40:48.9448526Z         "int"
2026-06-15T09:40:48.9448602Z       ],
2026-06-15T09:40:48.9448693Z       "stages": {
2026-06-15T09:40:48.9448775Z         "doc": {
2026-06-15T09:40:48.9448864Z           "complete": false,
2026-06-15T09:40:48.9449027Z           "evidence": []
2026-06-15T09:40:48.9449108Z         },
2026-06-15T09:40:48.9449193Z         "impl": {
2026-06-15T09:40:48.9449274Z           "complete": true,
2026-06-15T09:40:48.9449366Z           "evidence": [
2026-06-15T09:40:48.9449442Z             {
2026-06-15T09:40:48.9449561Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.9449642Z               "line": 214
2026-06-15T09:40:48.9449724Z             },
2026-06-15T09:40:48.9449804Z             {
2026-06-15T09:40:48.9449912Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9449998Z               "line": 403
2026-06-15T09:40:48.9450075Z             },
2026-06-15T09:40:48.9450151Z             {
2026-06-15T09:40:48.9450265Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T09:40:48.9450356Z               "line": 250
2026-06-15T09:40:48.9450432Z             },
2026-06-15T09:40:48.9450518Z             {
2026-06-15T09:40:48.9450638Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.9450714Z               "line": 353
2026-06-15T09:40:48.9450795Z             },
2026-06-15T09:40:48.9450875Z             {
2026-06-15T09:40:48.9450991Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9451067Z               "line": 30
2026-06-15T09:40:48.9451148Z             },
2026-06-15T09:40:48.9451228Z             {
2026-06-15T09:40:48.9451339Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9451423Z               "line": 152
2026-06-15T09:40:48.9451504Z             },
2026-06-15T09:40:48.9451587Z             {
2026-06-15T09:40:48.9451696Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9451786Z               "line": 188
2026-06-15T09:40:48.9451877Z             },
2026-06-15T09:40:48.9451954Z             {
2026-06-15T09:40:48.9452062Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9452153Z               "line": 347
2026-06-15T09:40:48.9452229Z             },
2026-06-15T09:40:48.9452305Z             {
2026-06-15T09:40:48.9452422Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.9452507Z               "line": 348
2026-06-15T09:40:48.9452589Z             },
2026-06-15T09:40:48.9452661Z             {
2026-06-15T09:40:48.9452779Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T09:40:48.9452856Z               "line": 115
2026-06-15T09:40:48.9452928Z             },
2026-06-15T09:40:48.9453009Z             {
2026-06-15T09:40:48.9453118Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9453204Z               "line": 120
2026-06-15T09:40:48.9453281Z             },
2026-06-15T09:40:48.9453357Z             {
2026-06-15T09:40:48.9453475Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9453672Z               "line": 363
2026-06-15T09:40:48.9453834Z             },
2026-06-15T09:40:48.9453924Z             {
2026-06-15T09:40:48.9454038Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9454129Z               "line": 472
2026-06-15T09:40:48.9454206Z             },
2026-06-15T09:40:48.9454295Z             {
2026-06-15T09:40:48.9454410Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9454492Z               "line": 24
2026-06-15T09:40:48.9454577Z             },
2026-06-15T09:40:48.9454653Z             {
2026-06-15T09:40:48.9454764Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9454841Z               "line": 76
2026-06-15T09:40:48.9454920Z             },
2026-06-15T09:40:48.9455005Z             {
2026-06-15T09:40:48.9455115Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9455205Z               "line": 154
2026-06-15T09:40:48.9455284Z             },
2026-06-15T09:40:48.9455365Z             {
2026-06-15T09:40:48.9455480Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9455571Z               "line": 177
2026-06-15T09:40:48.9455651Z             },
2026-06-15T09:40:48.9455727Z             {
2026-06-15T09:40:48.9455838Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9455918Z               "line": 273
2026-06-15T09:40:48.9456009Z             },
2026-06-15T09:40:48.9456091Z             {
2026-06-15T09:40:48.9456205Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9456299Z               "line": 455
2026-06-15T09:40:48.9456376Z             },
2026-06-15T09:40:48.9456458Z             {
2026-06-15T09:40:48.9456572Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9456662Z               "line": 537
2026-06-15T09:40:48.9456735Z             },
2026-06-15T09:40:48.9456815Z             {
2026-06-15T09:40:48.9456948Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:40:48.9457035Z               "line": 27
2026-06-15T09:40:48.9457106Z             },
2026-06-15T09:40:48.9457181Z             {
2026-06-15T09:40:48.9457301Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:40:48.9457393Z               "line": 43
2026-06-15T09:40:48.9457468Z             },
2026-06-15T09:40:48.9457544Z             {
2026-06-15T09:40:48.9457658Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9457753Z               "line": 393
2026-06-15T09:40:48.9457827Z             },
2026-06-15T09:40:48.9457903Z             {
2026-06-15T09:40:48.9458003Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9458090Z               "line": 1670
2026-06-15T09:40:48.9458166Z             },
2026-06-15T09:40:48.9458241Z             {
2026-06-15T09:40:48.9458343Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9458424Z               "line": 5468
2026-06-15T09:40:48.9458513Z             },
2026-06-15T09:40:48.9458590Z             {
2026-06-15T09:40:48.9458691Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9458776Z               "line": 5529
2026-06-15T09:40:48.9458857Z             },
2026-06-15T09:40:48.9458934Z             {
2026-06-15T09:40:48.9459096Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9459186Z               "line": 5557
2026-06-15T09:40:48.9459267Z             },
2026-06-15T09:40:48.9459349Z             {
2026-06-15T09:40:48.9459444Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9459520Z               "line": 5611
2026-06-15T09:40:48.9459597Z             },
2026-06-15T09:40:48.9459678Z             {
2026-06-15T09:40:48.9459777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9459858Z               "line": 5727
2026-06-15T09:40:48.9459936Z             },
2026-06-15T09:40:48.9460016Z             {
2026-06-15T09:40:48.9460111Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9460303Z               "line": 5780
2026-06-15T09:40:48.9460378Z             },
2026-06-15T09:40:48.9460548Z             {
2026-06-15T09:40:48.9460654Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9460730Z               "line": 298
2026-06-15T09:40:48.9460815Z             },
2026-06-15T09:40:48.9460893Z             {
2026-06-15T09:40:48.9461002Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9461083Z               "line": 339
2026-06-15T09:40:48.9461159Z             }
2026-06-15T09:40:48.9461236Z           ]
2026-06-15T09:40:48.9461312Z         },
2026-06-15T09:40:48.9461393Z         "int": {
2026-06-15T09:40:48.9461479Z           "complete": true,
2026-06-15T09:40:48.9461570Z           "evidence": [
2026-06-15T09:40:48.9461646Z             {
2026-06-15T09:40:48.9461764Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9461847Z               "line": 702
2026-06-15T09:40:48.9461928Z             },
2026-06-15T09:40:48.9462018Z             {
2026-06-15T09:40:48.9462127Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9462223Z               "line": 709
2026-06-15T09:40:48.9462294Z             },
2026-06-15T09:40:48.9462380Z             {
2026-06-15T09:40:48.9462491Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9462576Z               "line": 1119
2026-06-15T09:40:48.9462655Z             },
2026-06-15T09:40:48.9462736Z             {
2026-06-15T09:40:48.9462860Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T09:40:48.9462940Z               "line": 18
2026-06-15T09:40:48.9463025Z             }
2026-06-15T09:40:48.9463101Z           ]
2026-06-15T09:40:48.9463178Z         },
2026-06-15T09:40:48.9463268Z         "unit": {
2026-06-15T09:40:48.9463339Z           "complete": true,
2026-06-15T09:40:48.9463425Z           "evidence": [
2026-06-15T09:40:48.9463508Z             {
2026-06-15T09:40:48.9463621Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T09:40:48.9463706Z               "line": 431
2026-06-15T09:40:48.9463793Z             },
2026-06-15T09:40:48.9463869Z             {
2026-06-15T09:40:48.9463983Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T09:40:48.9464065Z               "line": 796
2026-06-15T09:40:48.9464142Z             },
2026-06-15T09:40:48.9464227Z             {
2026-06-15T09:40:48.9464346Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9464418Z               "line": 677
2026-06-15T09:40:48.9464499Z             },
2026-06-15T09:40:48.9464575Z             {
2026-06-15T09:40:48.9464679Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9464771Z               "line": 726
2026-06-15T09:40:48.9464842Z             },
2026-06-15T09:40:48.9464923Z             {
2026-06-15T09:40:48.9465029Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T09:40:48.9465119Z               "line": 750
2026-06-15T09:40:48.9465198Z             },
2026-06-15T09:40:48.9465275Z             {
2026-06-15T09:40:48.9465406Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9465485Z               "line": 602
2026-06-15T09:40:48.9465565Z             },
2026-06-15T09:40:48.9465636Z             {
2026-06-15T09:40:48.9465756Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9465835Z               "line": 623
2026-06-15T09:40:48.9465911Z             },
2026-06-15T09:40:48.9466006Z             {
2026-06-15T09:40:48.9466117Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9466206Z               "line": 659
2026-06-15T09:40:48.9466287Z             },
2026-06-15T09:40:48.9466370Z             {
2026-06-15T09:40:48.9466479Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9466569Z               "line": 713
2026-06-15T09:40:48.9466651Z             },
2026-06-15T09:40:48.9466731Z             {
2026-06-15T09:40:48.9466922Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9467004Z               "line": 731
2026-06-15T09:40:48.9467165Z             },
2026-06-15T09:40:48.9467241Z             {
2026-06-15T09:40:48.9467357Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9467441Z               "line": 765
2026-06-15T09:40:48.9467518Z             },
2026-06-15T09:40:48.9467614Z             {
2026-06-15T09:40:48.9467718Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T09:40:48.9467809Z               "line": 840
2026-06-15T09:40:48.9467881Z             },
2026-06-15T09:40:48.9467963Z             {
2026-06-15T09:40:48.9468090Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T09:40:48.9468165Z               "line": 80
2026-06-15T09:40:48.9468241Z             },
2026-06-15T09:40:48.9468318Z             {
2026-06-15T09:40:48.9468416Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9468510Z               "line": 6490
2026-06-15T09:40:48.9468588Z             },
2026-06-15T09:40:48.9468670Z             {
2026-06-15T09:40:48.9468773Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9468864Z               "line": 7314
2026-06-15T09:40:48.9469036Z             },
2026-06-15T09:40:48.9469117Z             {
2026-06-15T09:40:48.9472130Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9472258Z               "line": 7384
2026-06-15T09:40:48.9472339Z             },
2026-06-15T09:40:48.9472417Z             {
2026-06-15T09:40:48.9472535Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9472625Z               "line": 7422
2026-06-15T09:40:48.9472702Z             }
2026-06-15T09:40:48.9472774Z           ]
2026-06-15T09:40:48.9472854Z         }
2026-06-15T09:40:48.9472950Z       }
2026-06-15T09:40:48.9473031Z     },
2026-06-15T09:40:48.9473108Z     {
2026-06-15T09:40:48.9473192Z       "id": "REQ-START-1",
2026-06-15T09:40:48.9473387Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T09:40:48.9473509Z       "requiredStages": [
2026-06-15T09:40:48.9473594Z         "impl",
2026-06-15T09:40:48.9473685Z         "unit"
2026-06-15T09:40:48.9473762Z       ],
2026-06-15T09:40:48.9473857Z       "stages": {
2026-06-15T09:40:48.9473942Z         "doc": {
2026-06-15T09:40:48.9474038Z           "complete": false,
2026-06-15T09:40:48.9474129Z           "evidence": []
2026-06-15T09:40:48.9474223Z         },
2026-06-15T09:40:48.9474325Z         "impl": {
2026-06-15T09:40:48.9474420Z           "complete": true,
2026-06-15T09:40:48.9474515Z           "evidence": [
2026-06-15T09:40:48.9474596Z             {
2026-06-15T09:40:48.9474735Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:40:48.9474830Z               "line": 16
2026-06-15T09:40:48.9474925Z             }
2026-06-15T09:40:48.9475016Z           ]
2026-06-15T09:40:48.9475092Z         },
2026-06-15T09:40:48.9475187Z         "int": {
2026-06-15T09:40:48.9475274Z           "complete": false,
2026-06-15T09:40:48.9475364Z           "evidence": []
2026-06-15T09:40:48.9475449Z         },
2026-06-15T09:40:48.9475555Z         "unit": {
2026-06-15T09:40:48.9475651Z           "complete": true,
2026-06-15T09:40:48.9475731Z           "evidence": [
2026-06-15T09:40:48.9475821Z             {
2026-06-15T09:40:48.9475923Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:40:48.9476018Z               "line": 43
2026-06-15T09:40:48.9476111Z             },
2026-06-15T09:40:48.9476201Z             {
2026-06-15T09:40:48.9476325Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T09:40:48.9476410Z               "line": 59
2026-06-15T09:40:48.9476509Z             }
2026-06-15T09:40:48.9476600Z           ]
2026-06-15T09:40:48.9476687Z         }
2026-06-15T09:40:48.9476762Z       }
2026-06-15T09:40:48.9476847Z     },
2026-06-15T09:40:48.9476940Z     {
2026-06-15T09:40:48.9477025Z       "id": "REQ-START-2",
2026-06-15T09:40:48.9477177Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T09:40:48.9477424Z       "requiredStages": [
2026-06-15T09:40:48.9477611Z         "impl",
2026-06-15T09:40:48.9477688Z         "unit",
2026-06-15T09:40:48.9477773Z         "int"
2026-06-15T09:40:48.9477850Z       ],
2026-06-15T09:40:48.9477926Z       "stages": {
2026-06-15T09:40:48.9478011Z         "doc": {
2026-06-15T09:40:48.9478097Z           "complete": false,
2026-06-15T09:40:48.9478179Z           "evidence": []
2026-06-15T09:40:48.9478260Z         },
2026-06-15T09:40:48.9478340Z         "impl": {
2026-06-15T09:40:48.9478436Z           "complete": true,
2026-06-15T09:40:48.9478528Z           "evidence": [
2026-06-15T09:40:48.9478626Z             {
2026-06-15T09:40:48.9478739Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9478830Z               "line": 16
2026-06-15T09:40:48.9478911Z             },
2026-06-15T09:40:48.9479066Z             {
2026-06-15T09:40:48.9479186Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9479281Z               "line": 100
2026-06-15T09:40:48.9479372Z             },
2026-06-15T09:40:48.9479458Z             {
2026-06-15T09:40:48.9479578Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9479657Z               "line": 240
2026-06-15T09:40:48.9479744Z             }
2026-06-15T09:40:48.9479821Z           ]
2026-06-15T09:40:48.9479897Z         },
2026-06-15T09:40:48.9479986Z         "int": {
2026-06-15T09:40:48.9480069Z           "complete": true,
2026-06-15T09:40:48.9480173Z           "evidence": [
2026-06-15T09:40:48.9480254Z             {
2026-06-15T09:40:48.9480383Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.9480479Z               "line": 186
2026-06-15T09:40:48.9480560Z             }
2026-06-15T09:40:48.9480655Z           ]
2026-06-15T09:40:48.9480737Z         },
2026-06-15T09:40:48.9480821Z         "unit": {
2026-06-15T09:40:48.9480912Z           "complete": true,
2026-06-15T09:40:48.9481003Z           "evidence": [
2026-06-15T09:40:48.9481085Z             {
2026-06-15T09:40:48.9481193Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9481284Z               "line": 468
2026-06-15T09:40:48.9481361Z             },
2026-06-15T09:40:48.9481451Z             {
2026-06-15T09:40:48.9481564Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9481650Z               "line": 501
2026-06-15T09:40:48.9481731Z             }
2026-06-15T09:40:48.9481808Z           ]
2026-06-15T09:40:48.9481888Z         }
2026-06-15T09:40:48.9481969Z       }
2026-06-15T09:40:48.9482051Z     },
2026-06-15T09:40:48.9482127Z     {
2026-06-15T09:40:48.9482222Z       "id": "REQ-START-3",
2026-06-15T09:40:48.9482408Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T09:40:48.9482494Z       "requiredStages": [
2026-06-15T09:40:48.9482570Z         "impl",
2026-06-15T09:40:48.9482647Z         "unit",
2026-06-15T09:40:48.9482723Z         "int"
2026-06-15T09:40:48.9482799Z       ],
2026-06-15T09:40:48.9482894Z       "stages": {
2026-06-15T09:40:48.9482986Z         "doc": {
2026-06-15T09:40:48.9483071Z           "complete": false,
2026-06-15T09:40:48.9483161Z           "evidence": []
2026-06-15T09:40:48.9483228Z         },
2026-06-15T09:40:48.9483311Z         "impl": {
2026-06-15T09:40:48.9483391Z           "complete": true,
2026-06-15T09:40:48.9483486Z           "evidence": [
2026-06-15T09:40:48.9483567Z             {
2026-06-15T09:40:48.9483686Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9483776Z               "line": 23
2026-06-15T09:40:48.9483857Z             },
2026-06-15T09:40:48.9483938Z             {
2026-06-15T09:40:48.9484055Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9484145Z               "line": 205
2026-06-15T09:40:48.9484231Z             },
2026-06-15T09:40:48.9484313Z             {
2026-06-15T09:40:48.9484432Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9484512Z               "line": 221
2026-06-15T09:40:48.9484703Z             },
2026-06-15T09:40:48.9484793Z             {
2026-06-15T09:40:48.9485008Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9485084Z               "line": 17
2026-06-15T09:40:48.9485166Z             },
2026-06-15T09:40:48.9485242Z             {
2026-06-15T09:40:48.9485347Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9485428Z               "line": 43
2026-06-15T09:40:48.9485519Z             },
2026-06-15T09:40:48.9485595Z             {
2026-06-15T09:40:48.9485704Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9485785Z               "line": 101
2026-06-15T09:40:48.9485868Z             }
2026-06-15T09:40:48.9485952Z           ]
2026-06-15T09:40:48.9486034Z         },
2026-06-15T09:40:48.9486120Z         "int": {
2026-06-15T09:40:48.9486206Z           "complete": true,
2026-06-15T09:40:48.9486295Z           "evidence": [
2026-06-15T09:40:48.9486377Z             {
2026-06-15T09:40:48.9486498Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T09:40:48.9486582Z               "line": 440
2026-06-15T09:40:48.9486667Z             }
2026-06-15T09:40:48.9486747Z           ]
2026-06-15T09:40:48.9486820Z         },
2026-06-15T09:40:48.9486904Z         "unit": {
2026-06-15T09:40:48.9486979Z           "complete": true,
2026-06-15T09:40:48.9487064Z           "evidence": [
2026-06-15T09:40:48.9487141Z             {
2026-06-15T09:40:48.9487266Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9487355Z               "line": 331
2026-06-15T09:40:48.9487437Z             },
2026-06-15T09:40:48.9487509Z             {
2026-06-15T09:40:48.9487623Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9487703Z               "line": 352
2026-06-15T09:40:48.9487771Z             },
2026-06-15T09:40:48.9487847Z             {
2026-06-15T09:40:48.9487961Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T09:40:48.9488056Z               "line": 362
2026-06-15T09:40:48.9488143Z             },
2026-06-15T09:40:48.9488223Z             {
2026-06-15T09:40:48.9488338Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9488420Z               "line": 469
2026-06-15T09:40:48.9488496Z             },
2026-06-15T09:40:48.9488586Z             {
2026-06-15T09:40:48.9488696Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9488782Z               "line": 502
2026-06-15T09:40:48.9488853Z             },
2026-06-15T09:40:48.9488934Z             {
2026-06-15T09:40:48.9489102Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T09:40:48.9489191Z               "line": 510
2026-06-15T09:40:48.9489267Z             }
2026-06-15T09:40:48.9489348Z           ]
2026-06-15T09:40:48.9489424Z         }
2026-06-15T09:40:48.9489504Z       }
2026-06-15T09:40:48.9489583Z     },
2026-06-15T09:40:48.9489660Z     {
2026-06-15T09:40:48.9489756Z       "id": "REQ-START-4",
2026-06-15T09:40:48.9489898Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T09:40:48.9489979Z       "requiredStages": [
2026-06-15T09:40:48.9490076Z         "impl",
2026-06-15T09:40:48.9490152Z         "unit"
2026-06-15T09:40:48.9490222Z       ],
2026-06-15T09:40:48.9490304Z       "stages": {
2026-06-15T09:40:48.9490390Z         "doc": {
2026-06-15T09:40:48.9490476Z           "complete": false,
2026-06-15T09:40:48.9490561Z           "evidence": []
2026-06-15T09:40:48.9490638Z         },
2026-06-15T09:40:48.9490719Z         "impl": {
2026-06-15T09:40:48.9490819Z           "complete": true,
2026-06-15T09:40:48.9490905Z           "evidence": [
2026-06-15T09:40:48.9490987Z             {
2026-06-15T09:40:48.9491100Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9491181Z               "line": 461
2026-06-15T09:40:48.9491263Z             }
2026-06-15T09:40:48.9491340Z           ]
2026-06-15T09:40:48.9491424Z         },
2026-06-15T09:40:48.9491500Z         "int": {
2026-06-15T09:40:48.9491697Z           "complete": false,
2026-06-15T09:40:48.9491792Z           "evidence": []
2026-06-15T09:40:48.9491955Z         },
2026-06-15T09:40:48.9492035Z         "unit": {
2026-06-15T09:40:48.9492124Z           "complete": true,
2026-06-15T09:40:48.9492225Z           "evidence": [
2026-06-15T09:40:48.9492301Z             {
2026-06-15T09:40:48.9492425Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9492515Z               "line": 900
2026-06-15T09:40:48.9492592Z             }
2026-06-15T09:40:48.9492668Z           ]
2026-06-15T09:40:48.9492748Z         }
2026-06-15T09:40:48.9492825Z       }
2026-06-15T09:40:48.9492907Z     },
2026-06-15T09:40:48.9492983Z     {
2026-06-15T09:40:48.9493068Z       "id": "REQ-STORE-1",
2026-06-15T09:40:48.9493946Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T09:40:48.9494055Z       "requiredStages": [
2026-06-15T09:40:48.9494132Z         "impl",
2026-06-15T09:40:48.9494219Z         "unit"
2026-06-15T09:40:48.9494298Z       ],
2026-06-15T09:40:48.9494379Z       "stages": {
2026-06-15T09:40:48.9494460Z         "doc": {
2026-06-15T09:40:48.9494541Z           "complete": false,
2026-06-15T09:40:48.9494629Z           "evidence": []
2026-06-15T09:40:48.9494705Z         },
2026-06-15T09:40:48.9494786Z         "impl": {
2026-06-15T09:40:48.9494878Z           "complete": true,
2026-06-15T09:40:48.9494963Z           "evidence": [
2026-06-15T09:40:48.9495039Z             {
2026-06-15T09:40:48.9495164Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9495245Z               "line": 23
2026-06-15T09:40:48.9495315Z             },
2026-06-15T09:40:48.9495396Z             {
2026-06-15T09:40:48.9495521Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9495611Z               "line": 46
2026-06-15T09:40:48.9495682Z             },
2026-06-15T09:40:48.9495765Z             {
2026-06-15T09:40:48.9495884Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9495969Z               "line": 97
2026-06-15T09:40:48.9496050Z             },
2026-06-15T09:40:48.9496132Z             {
2026-06-15T09:40:48.9496250Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9496340Z               "line": 125
2026-06-15T09:40:48.9496423Z             },
2026-06-15T09:40:48.9496503Z             {
2026-06-15T09:40:48.9496622Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9496709Z               "line": 181
2026-06-15T09:40:48.9496799Z             },
2026-06-15T09:40:48.9496875Z             {
2026-06-15T09:40:48.9496985Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9497063Z               "line": 205
2026-06-15T09:40:48.9497152Z             },
2026-06-15T09:40:48.9497236Z             {
2026-06-15T09:40:48.9497355Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9497441Z               "line": 441
2026-06-15T09:40:48.9497520Z             },
2026-06-15T09:40:48.9497600Z             {
2026-06-15T09:40:48.9497716Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9497797Z               "line": 25
2026-06-15T09:40:48.9497873Z             },
2026-06-15T09:40:48.9497954Z             {
2026-06-15T09:40:48.9498074Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9498150Z               "line": 120
2026-06-15T09:40:48.9498225Z             },
2026-06-15T09:40:48.9498307Z             {
2026-06-15T09:40:48.9498427Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9498507Z               "line": 148
2026-06-15T09:40:48.9498578Z             },
2026-06-15T09:40:48.9498656Z             {
2026-06-15T09:40:48.9498865Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9499032Z               "line": 165
2026-06-15T09:40:48.9499208Z             },
2026-06-15T09:40:48.9499295Z             {
2026-06-15T09:40:48.9499413Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9499490Z               "line": 180
2026-06-15T09:40:48.9499566Z             },
2026-06-15T09:40:48.9499643Z             {
2026-06-15T09:40:48.9499765Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9499841Z               "line": 198
2026-06-15T09:40:48.9499932Z             },
2026-06-15T09:40:48.9500003Z             {
2026-06-15T09:40:48.9500115Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9500201Z               "line": 207
2026-06-15T09:40:48.9500277Z             },
2026-06-15T09:40:48.9500355Z             {
2026-06-15T09:40:48.9500463Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:40:48.9500544Z               "line": 16
2026-06-15T09:40:48.9500627Z             },
2026-06-15T09:40:48.9500703Z             {
2026-06-15T09:40:48.9500826Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:40:48.9500908Z               "line": 63
2026-06-15T09:40:48.9500993Z             }
2026-06-15T09:40:48.9501074Z           ]
2026-06-15T09:40:48.9501155Z         },
2026-06-15T09:40:48.9501232Z         "int": {
2026-06-15T09:40:48.9501322Z           "complete": false,
2026-06-15T09:40:48.9501417Z           "evidence": []
2026-06-15T09:40:48.9501488Z         },
2026-06-15T09:40:48.9501576Z         "unit": {
2026-06-15T09:40:48.9501655Z           "complete": true,
2026-06-15T09:40:48.9501736Z           "evidence": [
2026-06-15T09:40:48.9501813Z             {
2026-06-15T09:40:48.9501928Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9502018Z               "line": 558
2026-06-15T09:40:48.9502099Z             },
2026-06-15T09:40:48.9502176Z             {
2026-06-15T09:40:48.9502299Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9502380Z               "line": 568
2026-06-15T09:40:48.9502463Z             },
2026-06-15T09:40:48.9502539Z             {
2026-06-15T09:40:48.9502660Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9502737Z               "line": 590
2026-06-15T09:40:48.9502818Z             },
2026-06-15T09:40:48.9502900Z             {
2026-06-15T09:40:48.9503018Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9503109Z               "line": 606
2026-06-15T09:40:48.9503186Z             },
2026-06-15T09:40:48.9503267Z             {
2026-06-15T09:40:48.9503390Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T09:40:48.9503491Z               "line": 629
2026-06-15T09:40:48.9503577Z             },
2026-06-15T09:40:48.9503657Z             {
2026-06-15T09:40:48.9503782Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9503872Z               "line": 472
2026-06-15T09:40:48.9503957Z             },
2026-06-15T09:40:48.9504034Z             {
2026-06-15T09:40:48.9504163Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T09:40:48.9504254Z               "line": 507
2026-06-15T09:40:48.9504329Z             },
2026-06-15T09:40:48.9504402Z             {
2026-06-15T09:40:48.9504515Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:40:48.9504606Z               "line": 120
2026-06-15T09:40:48.9504682Z             },
2026-06-15T09:40:48.9504770Z             {
2026-06-15T09:40:48.9504882Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T09:40:48.9504962Z               "line": 128
2026-06-15T09:40:48.9505043Z             }
2026-06-15T09:40:48.9505120Z           ]
2026-06-15T09:40:48.9505203Z         }
2026-06-15T09:40:48.9505280Z       }
2026-06-15T09:40:48.9505356Z     },
2026-06-15T09:40:48.9505433Z     {
2026-06-15T09:40:48.9505518Z       "id": "REQ-SUBNET-1",
2026-06-15T09:40:48.9505937Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T09:40:48.9506110Z       "requiredStages": [
2026-06-15T09:40:48.9506195Z         "impl",
2026-06-15T09:40:48.9506271Z         "unit"
2026-06-15T09:40:48.9506344Z       ],
2026-06-15T09:40:48.9506439Z       "stages": {
2026-06-15T09:40:48.9506524Z         "doc": {
2026-06-15T09:40:48.9506615Z           "complete": false,
2026-06-15T09:40:48.9506702Z           "evidence": []
2026-06-15T09:40:48.9506787Z         },
2026-06-15T09:40:48.9506872Z         "impl": {
2026-06-15T09:40:48.9506969Z           "complete": true,
2026-06-15T09:40:48.9507068Z           "evidence": [
2026-06-15T09:40:48.9507144Z             {
2026-06-15T09:40:48.9507264Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9507350Z               "line": 281
2026-06-15T09:40:48.9507430Z             },
2026-06-15T09:40:48.9507512Z             {
2026-06-15T09:40:48.9507637Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9507726Z               "line": 599
2026-06-15T09:40:48.9507811Z             },
2026-06-15T09:40:48.9507892Z             {
2026-06-15T09:40:48.9507996Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9508075Z               "line": 2959
2026-06-15T09:40:48.9508161Z             },
2026-06-15T09:40:48.9508237Z             {
2026-06-15T09:40:48.9508334Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9508414Z               "line": 3269
2026-06-15T09:40:48.9508494Z             },
2026-06-15T09:40:48.9508567Z             {
2026-06-15T09:40:48.9508667Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9508747Z               "line": 3288
2026-06-15T09:40:48.9508823Z             },
2026-06-15T09:40:48.9508906Z             {
2026-06-15T09:40:48.9509081Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9509182Z               "line": 3352
2026-06-15T09:40:48.9509273Z             },
2026-06-15T09:40:48.9509349Z             {
2026-06-15T09:40:48.9509468Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9509578Z               "line": 3394
2026-06-15T09:40:48.9509663Z             },
2026-06-15T09:40:48.9509735Z             {
2026-06-15T09:40:48.9509831Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9509912Z               "line": 3583
2026-06-15T09:40:48.9509997Z             },
2026-06-15T09:40:48.9510074Z             {
2026-06-15T09:40:48.9510170Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9510260Z               "line": 3653
2026-06-15T09:40:48.9510335Z             },
2026-06-15T09:40:48.9510420Z             {
2026-06-15T09:40:48.9510521Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9510614Z               "line": 3877
2026-06-15T09:40:48.9510694Z             },
2026-06-15T09:40:48.9510771Z             {
2026-06-15T09:40:48.9510867Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9510953Z               "line": 4514
2026-06-15T09:40:48.9511037Z             },
2026-06-15T09:40:48.9511109Z             {
2026-06-15T09:40:48.9511220Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9511305Z               "line": 418
2026-06-15T09:40:48.9511386Z             }
2026-06-15T09:40:48.9511472Z           ]
2026-06-15T09:40:48.9511549Z         },
2026-06-15T09:40:48.9511634Z         "int": {
2026-06-15T09:40:48.9511725Z           "complete": false,
2026-06-15T09:40:48.9511816Z           "evidence": []
2026-06-15T09:40:48.9511892Z         },
2026-06-15T09:40:48.9511972Z         "unit": {
2026-06-15T09:40:48.9512068Z           "complete": true,
2026-06-15T09:40:48.9512150Z           "evidence": [
2026-06-15T09:40:48.9512235Z             {
2026-06-15T09:40:48.9512349Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9512441Z               "line": 1477
2026-06-15T09:40:48.9512521Z             },
2026-06-15T09:40:48.9512602Z             {
2026-06-15T09:40:48.9512808Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9512974Z               "line": 8224
2026-06-15T09:40:48.9513061Z             },
2026-06-15T09:40:48.9513141Z             {
2026-06-15T09:40:48.9513240Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9513335Z               "line": 8394
2026-06-15T09:40:48.9513407Z             },
2026-06-15T09:40:48.9513484Z             {
2026-06-15T09:40:48.9513578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9513669Z               "line": 8401
2026-06-15T09:40:48.9513742Z             },
2026-06-15T09:40:48.9513823Z             {
2026-06-15T09:40:48.9513921Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9514004Z               "line": 8454
2026-06-15T09:40:48.9514089Z             },
2026-06-15T09:40:48.9514161Z             {
2026-06-15T09:40:48.9514265Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9514342Z               "line": 8471
2026-06-15T09:40:48.9514437Z             },
2026-06-15T09:40:48.9514513Z             {
2026-06-15T09:40:48.9514613Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9514700Z               "line": 8501
2026-06-15T09:40:48.9514780Z             },
2026-06-15T09:40:48.9514856Z             {
2026-06-15T09:40:48.9514953Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9515038Z               "line": 8600
2026-06-15T09:40:48.9515118Z             },
2026-06-15T09:40:48.9515190Z             {
2026-06-15T09:40:48.9515291Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9515372Z               "line": 8751
2026-06-15T09:40:48.9515456Z             }
2026-06-15T09:40:48.9515541Z           ]
2026-06-15T09:40:48.9515623Z         }
2026-06-15T09:40:48.9515704Z       }
2026-06-15T09:40:48.9515783Z     },
2026-06-15T09:40:48.9515868Z     {
2026-06-15T09:40:48.9515959Z       "id": "REQ-SUBNET-2",
2026-06-15T09:40:48.9516192Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T09:40:48.9516299Z       "requiredStages": [
2026-06-15T09:40:48.9516394Z         "impl",
2026-06-15T09:40:48.9516479Z         "unit",
2026-06-15T09:40:48.9516560Z         "int"
2026-06-15T09:40:48.9516646Z       ],
2026-06-15T09:40:48.9516736Z       "stages": {
2026-06-15T09:40:48.9516822Z         "doc": {
2026-06-15T09:40:48.9516914Z           "complete": true,
2026-06-15T09:40:48.9517008Z           "evidence": [
2026-06-15T09:40:48.9517093Z             {
2026-06-15T09:40:48.9517248Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T09:40:48.9517337Z               "line": 60
2026-06-15T09:40:48.9517418Z             }
2026-06-15T09:40:48.9517505Z           ]
2026-06-15T09:40:48.9517586Z         },
2026-06-15T09:40:48.9517670Z         "impl": {
2026-06-15T09:40:48.9517766Z           "complete": true,
2026-06-15T09:40:48.9517858Z           "evidence": [
2026-06-15T09:40:48.9517938Z             {
2026-06-15T09:40:48.9518076Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.9518168Z               "line": 837
2026-06-15T09:40:48.9518258Z             },
2026-06-15T09:40:48.9518328Z             {
2026-06-15T09:40:48.9518442Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9518524Z               "line": 1190
2026-06-15T09:40:48.9518608Z             },
2026-06-15T09:40:48.9518688Z             {
2026-06-15T09:40:48.9518807Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9518899Z               "line": 538
2026-06-15T09:40:48.9519064Z             },
2026-06-15T09:40:48.9519147Z             {
2026-06-15T09:40:48.9519256Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T09:40:48.9519341Z               "line": 669
2026-06-15T09:40:48.9519418Z             },
2026-06-15T09:40:48.9519495Z             {
2026-06-15T09:40:48.9519618Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9519698Z               "line": 26
2026-06-15T09:40:48.9519890Z             },
2026-06-15T09:40:48.9519966Z             {
2026-06-15T09:40:48.9520171Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9520261Z               "line": 60
2026-06-15T09:40:48.9520342Z             },
2026-06-15T09:40:48.9520420Z             {
2026-06-15T09:40:48.9520533Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9520624Z               "line": 168
2026-06-15T09:40:48.9520697Z             },
2026-06-15T09:40:48.9520778Z             {
2026-06-15T09:40:48.9520881Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9520975Z               "line": 295
2026-06-15T09:40:48.9521052Z             },
2026-06-15T09:40:48.9521123Z             {
2026-06-15T09:40:48.9521236Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9521316Z               "line": 417
2026-06-15T09:40:48.9521398Z             },
2026-06-15T09:40:48.9521470Z             {
2026-06-15T09:40:48.9521607Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T09:40:48.9521689Z               "line": 252
2026-06-15T09:40:48.9521780Z             },
2026-06-15T09:40:48.9521856Z             {
2026-06-15T09:40:48.9521951Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9522042Z               "line": 3315
2026-06-15T09:40:48.9522123Z             },
2026-06-15T09:40:48.9522208Z             {
2026-06-15T09:40:48.9522309Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9522390Z               "line": 3816
2026-06-15T09:40:48.9522480Z             },
2026-06-15T09:40:48.9522561Z             {
2026-06-15T09:40:48.9522658Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9522748Z               "line": 4445
2026-06-15T09:40:48.9522824Z             }
2026-06-15T09:40:48.9522900Z           ]
2026-06-15T09:40:48.9522982Z         },
2026-06-15T09:40:48.9523071Z         "int": {
2026-06-15T09:40:48.9523158Z           "complete": true,
2026-06-15T09:40:48.9523253Z           "evidence": [
2026-06-15T09:40:48.9523335Z             {
2026-06-15T09:40:48.9523472Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T09:40:48.9523564Z               "line": 22
2026-06-15T09:40:48.9523640Z             },
2026-06-15T09:40:48.9523720Z             {
2026-06-15T09:40:48.9523842Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9523924Z               "line": 576
2026-06-15T09:40:48.9524011Z             },
2026-06-15T09:40:48.9524091Z             {
2026-06-15T09:40:48.9524210Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9524287Z               "line": 793
2026-06-15T09:40:48.9524368Z             }
2026-06-15T09:40:48.9524448Z           ]
2026-06-15T09:40:48.9524534Z         },
2026-06-15T09:40:48.9524616Z         "unit": {
2026-06-15T09:40:48.9524712Z           "complete": true,
2026-06-15T09:40:48.9524810Z           "evidence": [
2026-06-15T09:40:48.9524888Z             {
2026-06-15T09:40:48.9525016Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9525106Z               "line": 586
2026-06-15T09:40:48.9525188Z             },
2026-06-15T09:40:48.9525269Z             {
2026-06-15T09:40:48.9525364Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9525459Z               "line": 8264
2026-06-15T09:40:48.9525532Z             },
2026-06-15T09:40:48.9525618Z             {
2026-06-15T09:40:48.9525717Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9525808Z               "line": 8955
2026-06-15T09:40:48.9525899Z             }
2026-06-15T09:40:48.9525979Z           ]
2026-06-15T09:40:48.9526064Z         }
2026-06-15T09:40:48.9526140Z       }
2026-06-15T09:40:48.9526226Z     },
2026-06-15T09:40:48.9526306Z     {
2026-06-15T09:40:48.9526395Z       "id": "REQ-SUBNET-3",
2026-06-15T09:40:48.9526662Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T09:40:48.9526854Z       "requiredStages": [
2026-06-15T09:40:48.9526944Z         "impl",
2026-06-15T09:40:48.9527091Z         "unit"
2026-06-15T09:40:48.9527183Z       ],
2026-06-15T09:40:48.9527264Z       "stages": {
2026-06-15T09:40:48.9527353Z         "doc": {
2026-06-15T09:40:48.9527450Z           "complete": false,
2026-06-15T09:40:48.9527535Z           "evidence": []
2026-06-15T09:40:48.9527626Z         },
2026-06-15T09:40:48.9527697Z         "impl": {
2026-06-15T09:40:48.9527793Z           "complete": true,
2026-06-15T09:40:48.9527869Z           "evidence": [
2026-06-15T09:40:48.9527955Z             {
2026-06-15T09:40:48.9528094Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9528170Z               "line": 152
2026-06-15T09:40:48.9528250Z             },
2026-06-15T09:40:48.9528331Z             {
2026-06-15T09:40:48.9528461Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9528536Z               "line": 299
2026-06-15T09:40:48.9528622Z             },
2026-06-15T09:40:48.9528709Z             {
2026-06-15T09:40:48.9528828Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9528926Z               "line": 437
2026-06-15T09:40:48.9529093Z             },
2026-06-15T09:40:48.9529182Z             {
2026-06-15T09:40:48.9529300Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9529396Z               "line": 480
2026-06-15T09:40:48.9529478Z             },
2026-06-15T09:40:48.9529558Z             {
2026-06-15T09:40:48.9529682Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9529754Z               "line": 125
2026-06-15T09:40:48.9529840Z             },
2026-06-15T09:40:48.9529920Z             {
2026-06-15T09:40:48.9530036Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9530126Z               "line": 253
2026-06-15T09:40:48.9530206Z             },
2026-06-15T09:40:48.9530288Z             {
2026-06-15T09:40:48.9530393Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9530479Z               "line": 264
2026-06-15T09:40:48.9530559Z             },
2026-06-15T09:40:48.9530651Z             {
2026-06-15T09:40:48.9530759Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9530845Z               "line": 285
2026-06-15T09:40:48.9530932Z             },
2026-06-15T09:40:48.9531009Z             {
2026-06-15T09:40:48.9531126Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9531222Z               "line": 589
2026-06-15T09:40:48.9531300Z             },
2026-06-15T09:40:48.9531380Z             {
2026-06-15T09:40:48.9531493Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9531579Z               "line": 648
2026-06-15T09:40:48.9531660Z             },
2026-06-15T09:40:48.9531739Z             {
2026-06-15T09:40:48.9531857Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.9531939Z               "line": 61
2026-06-15T09:40:48.9532031Z             },
2026-06-15T09:40:48.9532111Z             {
2026-06-15T09:40:48.9532239Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.9532311Z               "line": 90
2026-06-15T09:40:48.9532406Z             },
2026-06-15T09:40:48.9532487Z             {
2026-06-15T09:40:48.9532598Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.9532693Z               "line": 125
2026-06-15T09:40:48.9532773Z             },
2026-06-15T09:40:48.9532855Z             {
2026-06-15T09:40:48.9532964Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T09:40:48.9533055Z               "line": 9
2026-06-15T09:40:48.9533131Z             },
2026-06-15T09:40:48.9533213Z             {
2026-06-15T09:40:48.9533312Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9533389Z               "line": 3653
2026-06-15T09:40:48.9536624Z             },
2026-06-15T09:40:48.9536734Z             {
2026-06-15T09:40:48.9536998Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9537094Z               "line": 445
2026-06-15T09:40:48.9537265Z             }
2026-06-15T09:40:48.9537346Z           ]
2026-06-15T09:40:48.9537424Z         },
2026-06-15T09:40:48.9537500Z         "int": {
2026-06-15T09:40:48.9537589Z           "complete": false,
2026-06-15T09:40:48.9537681Z           "evidence": []
2026-06-15T09:40:48.9537762Z         },
2026-06-15T09:40:48.9537847Z         "unit": {
2026-06-15T09:40:48.9537942Z           "complete": true,
2026-06-15T09:40:48.9538024Z           "evidence": [
2026-06-15T09:40:48.9538110Z             {
2026-06-15T09:40:48.9538237Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9538325Z               "line": 1304
2026-06-15T09:40:48.9538410Z             },
2026-06-15T09:40:48.9538491Z             {
2026-06-15T09:40:48.9538625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9538707Z               "line": 1606
2026-06-15T09:40:48.9538800Z             },
2026-06-15T09:40:48.9538877Z             {
2026-06-15T09:40:48.9539101Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9539206Z               "line": 888
2026-06-15T09:40:48.9539284Z             },
2026-06-15T09:40:48.9539365Z             {
2026-06-15T09:40:48.9539486Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9539572Z               "line": 959
2026-06-15T09:40:48.9539648Z             },
2026-06-15T09:40:48.9539733Z             {
2026-06-15T09:40:48.9539856Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9539947Z               "line": 1009
2026-06-15T09:40:48.9540033Z             },
2026-06-15T09:40:48.9540113Z             {
2026-06-15T09:40:48.9540228Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9540324Z               "line": 1068
2026-06-15T09:40:48.9540400Z             },
2026-06-15T09:40:48.9540480Z             {
2026-06-15T09:40:48.9540601Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T09:40:48.9540686Z               "line": 234
2026-06-15T09:40:48.9540771Z             },
2026-06-15T09:40:48.9540853Z             {
2026-06-15T09:40:48.9540977Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T09:40:48.9541058Z               "line": 49
2026-06-15T09:40:48.9541139Z             },
2026-06-15T09:40:48.9541221Z             {
2026-06-15T09:40:48.9541324Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9541405Z               "line": 8600
2026-06-15T09:40:48.9541482Z             },
2026-06-15T09:40:48.9541564Z             {
2026-06-15T09:40:48.9541663Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9541739Z               "line": 8706
2026-06-15T09:40:48.9541817Z             },
2026-06-15T09:40:48.9541898Z             {
2026-06-15T09:40:48.9541991Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9542082Z               "line": 8921
2026-06-15T09:40:48.9542158Z             }
2026-06-15T09:40:48.9542239Z           ]
2026-06-15T09:40:48.9542313Z         }
2026-06-15T09:40:48.9542404Z       }
2026-06-15T09:40:48.9542480Z     },
2026-06-15T09:40:48.9542557Z     {
2026-06-15T09:40:48.9542656Z       "id": "REQ-SUBNET-4",
2026-06-15T09:40:48.9542948Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T09:40:48.9543042Z       "requiredStages": [
2026-06-15T09:40:48.9543124Z         "impl",
2026-06-15T09:40:48.9543210Z         "unit"
2026-06-15T09:40:48.9543286Z       ],
2026-06-15T09:40:48.9543362Z       "stages": {
2026-06-15T09:40:48.9543439Z         "doc": {
2026-06-15T09:40:48.9543534Z           "complete": true,
2026-06-15T09:40:48.9543615Z           "evidence": [
2026-06-15T09:40:48.9543691Z             {
2026-06-15T09:40:48.9543849Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T09:40:48.9543939Z               "line": 60
2026-06-15T09:40:48.9544117Z             }
2026-06-15T09:40:48.9544206Z           ]
2026-06-15T09:40:48.9544287Z         },
2026-06-15T09:40:48.9544456Z         "impl": {
2026-06-15T09:40:48.9544549Z           "complete": true,
2026-06-15T09:40:48.9544631Z           "evidence": [
2026-06-15T09:40:48.9544717Z             {
2026-06-15T09:40:48.9544821Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9544916Z               "line": 2959
2026-06-15T09:40:48.9544996Z             },
2026-06-15T09:40:48.9545073Z             {
2026-06-15T09:40:48.9545174Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9545254Z               "line": 4412
2026-06-15T09:40:48.9545340Z             },
2026-06-15T09:40:48.9545426Z             {
2026-06-15T09:40:48.9545521Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9545602Z               "line": 4445
2026-06-15T09:40:48.9545684Z             }
2026-06-15T09:40:48.9545760Z           ]
2026-06-15T09:40:48.9545836Z         },
2026-06-15T09:40:48.9545935Z         "int": {
2026-06-15T09:40:48.9546023Z           "complete": false,
2026-06-15T09:40:48.9546122Z           "evidence": []
2026-06-15T09:40:48.9546217Z         },
2026-06-15T09:40:48.9546299Z         "unit": {
2026-06-15T09:40:48.9546389Z           "complete": true,
2026-06-15T09:40:48.9546518Z           "evidence": [
2026-06-15T09:40:48.9546604Z             {
2026-06-15T09:40:48.9546695Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9546784Z               "line": 8380
2026-06-15T09:40:48.9546866Z             },
2026-06-15T09:40:48.9546938Z             {
2026-06-15T09:40:48.9547038Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9547123Z               "line": 8454
2026-06-15T09:40:48.9547203Z             }
2026-06-15T09:40:48.9547279Z           ]
2026-06-15T09:40:48.9547370Z         }
2026-06-15T09:40:48.9547449Z       }
2026-06-15T09:40:48.9547525Z     },
2026-06-15T09:40:48.9547606Z     {
2026-06-15T09:40:48.9547698Z       "id": "REQ-SUBNET-5",
2026-06-15T09:40:48.9549032Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T09:40:48.9549136Z       "requiredStages": [
2026-06-15T09:40:48.9549210Z         "impl",
2026-06-15T09:40:48.9549290Z         "unit",
2026-06-15T09:40:48.9549370Z         "int"
2026-06-15T09:40:48.9549451Z       ],
2026-06-15T09:40:48.9549544Z       "stages": {
2026-06-15T09:40:48.9549624Z         "doc": {
2026-06-15T09:40:48.9549709Z           "complete": false,
2026-06-15T09:40:48.9549796Z           "evidence": []
2026-06-15T09:40:48.9549877Z         },
2026-06-15T09:40:48.9549957Z         "impl": {
2026-06-15T09:40:48.9550056Z           "complete": true,
2026-06-15T09:40:48.9550137Z           "evidence": [
2026-06-15T09:40:48.9550232Z             {
2026-06-15T09:40:48.9550363Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T09:40:48.9550435Z               "line": 126
2026-06-15T09:40:48.9550512Z             },
2026-06-15T09:40:48.9550593Z             {
2026-06-15T09:40:48.9550716Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T09:40:48.9550798Z               "line": 413
2026-06-15T09:40:48.9550880Z             },
2026-06-15T09:40:48.9550960Z             {
2026-06-15T09:40:48.9551074Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9551151Z               "line": 74
2026-06-15T09:40:48.9551232Z             },
2026-06-15T09:40:48.9551317Z             {
2026-06-15T09:40:48.9551417Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.9551514Z               "line": 332
2026-06-15T09:40:48.9551589Z             },
2026-06-15T09:40:48.9551670Z             {
2026-06-15T09:40:48.9551786Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.9551999Z               "line": 621
2026-06-15T09:40:48.9552191Z             },
2026-06-15T09:40:48.9552266Z             {
2026-06-15T09:40:48.9552397Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.9552477Z               "line": 31
2026-06-15T09:40:48.9552557Z             },
2026-06-15T09:40:48.9552633Z             {
2026-06-15T09:40:48.9552751Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.9552841Z               "line": 50
2026-06-15T09:40:48.9552916Z             },
2026-06-15T09:40:48.9552997Z             {
2026-06-15T09:40:48.9553117Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.9553198Z               "line": 69
2026-06-15T09:40:48.9553278Z             },
2026-06-15T09:40:48.9553355Z             {
2026-06-15T09:40:48.9553469Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.9553564Z               "line": 113
2026-06-15T09:40:48.9553645Z             },
2026-06-15T09:40:48.9553728Z             {
2026-06-15T09:40:48.9553851Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:40:48.9553946Z               "line": 25
2026-06-15T09:40:48.9554023Z             },
2026-06-15T09:40:48.9554108Z             {
2026-06-15T09:40:48.9554237Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:40:48.9554314Z               "line": 34
2026-06-15T09:40:48.9554395Z             },
2026-06-15T09:40:48.9554471Z             {
2026-06-15T09:40:48.9554590Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:40:48.9554672Z               "line": 17
2026-06-15T09:40:48.9554752Z             },
2026-06-15T09:40:48.9554833Z             {
2026-06-15T09:40:48.9554934Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9555025Z               "line": 4370
2026-06-15T09:40:48.9555099Z             },
2026-06-15T09:40:48.9555181Z             {
2026-06-15T09:40:48.9555282Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T09:40:48.9555368Z               "line": 419
2026-06-15T09:40:48.9555452Z             }
2026-06-15T09:40:48.9555523Z           ]
2026-06-15T09:40:48.9555595Z         },
2026-06-15T09:40:48.9555677Z         "int": {
2026-06-15T09:40:48.9555766Z           "complete": true,
2026-06-15T09:40:48.9555847Z           "evidence": [
2026-06-15T09:40:48.9555919Z             {
2026-06-15T09:40:48.9556029Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9556109Z               "line": 817
2026-06-15T09:40:48.9556195Z             }
2026-06-15T09:40:48.9556273Z           ]
2026-06-15T09:40:48.9556358Z         },
2026-06-15T09:40:48.9556438Z         "unit": {
2026-06-15T09:40:48.9556530Z           "complete": true,
2026-06-15T09:40:48.9556621Z           "evidence": [
2026-06-15T09:40:48.9556701Z             {
2026-06-15T09:40:48.9556820Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.9556902Z               "line": 341
2026-06-15T09:40:48.9556983Z             },
2026-06-15T09:40:48.9557054Z             {
2026-06-15T09:40:48.9557174Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T09:40:48.9557260Z               "line": 1115
2026-06-15T09:40:48.9557335Z             },
2026-06-15T09:40:48.9557421Z             {
2026-06-15T09:40:48.9557537Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T09:40:48.9557617Z               "line": 151
2026-06-15T09:40:48.9557688Z             },
2026-06-15T09:40:48.9557773Z             {
2026-06-15T09:40:48.9557897Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T09:40:48.9557976Z               "line": 61
2026-06-15T09:40:48.9558057Z             },
2026-06-15T09:40:48.9558138Z             {
2026-06-15T09:40:48.9558258Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:40:48.9558343Z               "line": 111
2026-06-15T09:40:48.9558428Z             },
2026-06-15T09:40:48.9558515Z             {
2026-06-15T09:40:48.9558710Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:40:48.9558868Z               "line": 138
2026-06-15T09:40:48.9559048Z             },
2026-06-15T09:40:48.9559131Z             {
2026-06-15T09:40:48.9559235Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T09:40:48.9559320Z               "line": 148
2026-06-15T09:40:48.9559397Z             },
2026-06-15T09:40:48.9559474Z             {
2026-06-15T09:40:48.9559578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9559654Z               "line": 8281
2026-06-15T09:40:48.9559736Z             }
2026-06-15T09:40:48.9559812Z           ]
2026-06-15T09:40:48.9559893Z         }
2026-06-15T09:40:48.9559974Z       }
2026-06-15T09:40:48.9560051Z     },
2026-06-15T09:40:48.9560132Z     {
2026-06-15T09:40:48.9560216Z       "id": "REQ-SUBNET-6",
2026-06-15T09:40:48.9560886Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T09:40:48.9560995Z       "requiredStages": [
2026-06-15T09:40:48.9561072Z         "impl",
2026-06-15T09:40:48.9561149Z         "unit"
2026-06-15T09:40:48.9561229Z       ],
2026-06-15T09:40:48.9561305Z       "stages": {
2026-06-15T09:40:48.9561387Z         "doc": {
2026-06-15T09:40:48.9561477Z           "complete": false,
2026-06-15T09:40:48.9561568Z           "evidence": []
2026-06-15T09:40:48.9561639Z         },
2026-06-15T09:40:48.9561721Z         "impl": {
2026-06-15T09:40:48.9561811Z           "complete": true,
2026-06-15T09:40:48.9561901Z           "evidence": [
2026-06-15T09:40:48.9561982Z             {
2026-06-15T09:40:48.9562102Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9562192Z               "line": 254
2026-06-15T09:40:48.9562264Z             },
2026-06-15T09:40:48.9562341Z             {
2026-06-15T09:40:48.9562450Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9562545Z               "line": 4028
2026-06-15T09:40:48.9562617Z             },
2026-06-15T09:40:48.9562694Z             {
2026-06-15T09:40:48.9562797Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9562874Z               "line": 4045
2026-06-15T09:40:48.9562947Z             },
2026-06-15T09:40:48.9563009Z             {
2026-06-15T09:40:48.9563117Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9563193Z               "line": 4098
2026-06-15T09:40:48.9563274Z             },
2026-06-15T09:40:48.9563350Z             {
2026-06-15T09:40:48.9563448Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9563524Z               "line": 4121
2026-06-15T09:40:48.9563596Z             }
2026-06-15T09:40:48.9563691Z           ]
2026-06-15T09:40:48.9563772Z         },
2026-06-15T09:40:48.9563862Z         "int": {
2026-06-15T09:40:48.9563959Z           "complete": false,
2026-06-15T09:40:48.9564044Z           "evidence": []
2026-06-15T09:40:48.9564125Z         },
2026-06-15T09:40:48.9564215Z         "unit": {
2026-06-15T09:40:48.9564307Z           "complete": true,
2026-06-15T09:40:48.9564388Z           "evidence": [
2026-06-15T09:40:48.9564467Z             {
2026-06-15T09:40:48.9564574Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9564650Z               "line": 8295
2026-06-15T09:40:48.9564731Z             },
2026-06-15T09:40:48.9564811Z             {
2026-06-15T09:40:48.9564917Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9565002Z               "line": 8328
2026-06-15T09:40:48.9565088Z             },
2026-06-15T09:40:48.9565164Z             {
2026-06-15T09:40:48.9565266Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9565354Z               "line": 8337
2026-06-15T09:40:48.9565431Z             }
2026-06-15T09:40:48.9565519Z           ]
2026-06-15T09:40:48.9565595Z         }
2026-06-15T09:40:48.9565674Z       }
2026-06-15T09:40:48.9565862Z     },
2026-06-15T09:40:48.9565942Z     {
2026-06-15T09:40:48.9566036Z       "id": "REQ-SUBNET-7",
2026-06-15T09:40:48.9567754Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T09:40:48.9567853Z       "requiredStages": [
2026-06-15T09:40:48.9567933Z         "impl",
2026-06-15T09:40:48.9568010Z         "unit"
2026-06-15T09:40:48.9568092Z       ],
2026-06-15T09:40:48.9568163Z       "stages": {
2026-06-15T09:40:48.9568248Z         "doc": {
2026-06-15T09:40:48.9568342Z           "complete": false,
2026-06-15T09:40:48.9568438Z           "evidence": []
2026-06-15T09:40:48.9568518Z         },
2026-06-15T09:40:48.9568608Z         "impl": {
2026-06-15T09:40:48.9568698Z           "complete": true,
2026-06-15T09:40:48.9568775Z           "evidence": [
2026-06-15T09:40:48.9568856Z             {
2026-06-15T09:40:48.9569065Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:40:48.9569147Z               "line": 17
2026-06-15T09:40:48.9569222Z             },
2026-06-15T09:40:48.9569303Z             {
2026-06-15T09:40:48.9569423Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9569500Z               "line": 103
2026-06-15T09:40:48.9569580Z             },
2026-06-15T09:40:48.9569657Z             {
2026-06-15T09:40:48.9569771Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T09:40:48.9569856Z               "line": 312
2026-06-15T09:40:48.9569933Z             },
2026-06-15T09:40:48.9570015Z             {
2026-06-15T09:40:48.9570138Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T09:40:48.9570219Z               "line": 131
2026-06-15T09:40:48.9570306Z             },
2026-06-15T09:40:48.9570382Z             {
2026-06-15T09:40:48.9570510Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9570591Z               "line": 160
2026-06-15T09:40:48.9570674Z             },
2026-06-15T09:40:48.9570748Z             {
2026-06-15T09:40:48.9570873Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9570959Z               "line": 441
2026-06-15T09:40:48.9571040Z             },
2026-06-15T09:40:48.9571115Z             {
2026-06-15T09:40:48.9571233Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9571315Z               "line": 618
2026-06-15T09:40:48.9571394Z             },
2026-06-15T09:40:48.9571465Z             {
2026-06-15T09:40:48.9571589Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9571676Z               "line": 658
2026-06-15T09:40:48.9571747Z             },
2026-06-15T09:40:48.9571827Z             {
2026-06-15T09:40:48.9571985Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9572113Z               "line": 714
2026-06-15T09:40:48.9572189Z             },
2026-06-15T09:40:48.9572272Z             {
2026-06-15T09:40:48.9572395Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9572490Z               "line": 136
2026-06-15T09:40:48.9572567Z             },
2026-06-15T09:40:48.9572648Z             {
2026-06-15T09:40:48.9572757Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9572833Z               "line": 139
2026-06-15T09:40:48.9572911Z             }
2026-06-15T09:40:48.9572982Z           ]
2026-06-15T09:40:48.9573062Z         },
2026-06-15T09:40:48.9573138Z         "int": {
2026-06-15T09:40:48.9573240Z           "complete": false,
2026-06-15T09:40:48.9573334Z           "evidence": []
2026-06-15T09:40:48.9573526Z         },
2026-06-15T09:40:48.9573602Z         "unit": {
2026-06-15T09:40:48.9573682Z           "complete": true,
2026-06-15T09:40:48.9573843Z           "evidence": [
2026-06-15T09:40:48.9573924Z             {
2026-06-15T09:40:48.9574046Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:40:48.9574127Z               "line": 136
2026-06-15T09:40:48.9574208Z             },
2026-06-15T09:40:48.9574290Z             {
2026-06-15T09:40:48.9574393Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T09:40:48.9574485Z               "line": 156
2026-06-15T09:40:48.9574567Z             },
2026-06-15T09:40:48.9574643Z             {
2026-06-15T09:40:48.9574766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9574848Z               "line": 935
2026-06-15T09:40:48.9574924Z             },
2026-06-15T09:40:48.9574990Z             {
2026-06-15T09:40:48.9575115Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T09:40:48.9575200Z               "line": 957
2026-06-15T09:40:48.9575281Z             },
2026-06-15T09:40:48.9575376Z             {
2026-06-15T09:40:48.9575492Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T09:40:48.9575581Z               "line": 1419
2026-06-15T09:40:48.9575662Z             },
2026-06-15T09:40:48.9575739Z             {
2026-06-15T09:40:48.9575844Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T09:40:48.9575934Z               "line": 1004
2026-06-15T09:40:48.9576015Z             }
2026-06-15T09:40:48.9576084Z           ]
2026-06-15T09:40:48.9576169Z         }
2026-06-15T09:40:48.9576244Z       }
2026-06-15T09:40:48.9576325Z     },
2026-06-15T09:40:48.9576398Z     {
2026-06-15T09:40:48.9576493Z       "id": "REQ-SUBNET-8",
2026-06-15T09:40:48.9577578Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T09:40:48.9577684Z       "requiredStages": [
2026-06-15T09:40:48.9577770Z         "impl",
2026-06-15T09:40:48.9577851Z         "unit"
2026-06-15T09:40:48.9577936Z       ],
2026-06-15T09:40:48.9578023Z       "stages": {
2026-06-15T09:40:48.9578103Z         "doc": {
2026-06-15T09:40:48.9578184Z           "complete": false,
2026-06-15T09:40:48.9578270Z           "evidence": []
2026-06-15T09:40:48.9578352Z         },
2026-06-15T09:40:48.9578432Z         "impl": {
2026-06-15T09:40:48.9578518Z           "complete": true,
2026-06-15T09:40:48.9578608Z           "evidence": [
2026-06-15T09:40:48.9578691Z             {
2026-06-15T09:40:48.9578793Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9578875Z               "line": 3395
2026-06-15T09:40:48.9579032Z             },
2026-06-15T09:40:48.9579115Z             {
2026-06-15T09:40:48.9579224Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9579320Z               "line": 3424
2026-06-15T09:40:48.9579398Z             },
2026-06-15T09:40:48.9579477Z             {
2026-06-15T09:40:48.9579578Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9579669Z               "line": 3441
2026-06-15T09:40:48.9579745Z             },
2026-06-15T09:40:48.9579830Z             {
2026-06-15T09:40:48.9579926Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9580007Z               "line": 3464
2026-06-15T09:40:48.9580088Z             },
2026-06-15T09:40:48.9580164Z             {
2026-06-15T09:40:48.9580265Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9580341Z               "line": 3878
2026-06-15T09:40:48.9580417Z             }
2026-06-15T09:40:48.9580498Z           ]
2026-06-15T09:40:48.9580580Z         },
2026-06-15T09:40:48.9580660Z         "int": {
2026-06-15T09:40:48.9580750Z           "complete": false,
2026-06-15T09:40:48.9580961Z           "evidence": []
2026-06-15T09:40:48.9581041Z         },
2026-06-15T09:40:48.9581219Z         "unit": {
2026-06-15T09:40:48.9581313Z           "complete": true,
2026-06-15T09:40:48.9581394Z           "evidence": [
2026-06-15T09:40:48.9581481Z             {
2026-06-15T09:40:48.9581577Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9581665Z               "line": 8485
2026-06-15T09:40:48.9581737Z             },
2026-06-15T09:40:48.9581818Z             {
2026-06-15T09:40:48.9581918Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9582001Z               "line": 8501
2026-06-15T09:40:48.9582077Z             }
2026-06-15T09:40:48.9582158Z           ]
2026-06-15T09:40:48.9582236Z         }
2026-06-15T09:40:48.9582316Z       }
2026-06-15T09:40:48.9582402Z     },
2026-06-15T09:40:48.9582483Z     {
2026-06-15T09:40:48.9582560Z       "id": "REQ-TERM-1",
2026-06-15T09:40:48.9582735Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T09:40:48.9582832Z       "requiredStages": [
2026-06-15T09:40:48.9582912Z         "impl",
2026-06-15T09:40:48.9582997Z         "unit"
2026-06-15T09:40:48.9583079Z       ],
2026-06-15T09:40:48.9583166Z       "stages": {
2026-06-15T09:40:48.9583241Z         "doc": {
2026-06-15T09:40:48.9583336Z           "complete": false,
2026-06-15T09:40:48.9583418Z           "evidence": []
2026-06-15T09:40:48.9583499Z         },
2026-06-15T09:40:48.9583584Z         "impl": {
2026-06-15T09:40:48.9583675Z           "complete": true,
2026-06-15T09:40:48.9583757Z           "evidence": [
2026-06-15T09:40:48.9583833Z             {
2026-06-15T09:40:48.9583937Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:40:48.9584018Z               "line": 59
2026-06-15T09:40:48.9584096Z             },
2026-06-15T09:40:48.9584172Z             {
2026-06-15T09:40:48.9584284Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T09:40:48.9584370Z               "line": 195
2026-06-15T09:40:48.9584456Z             },
2026-06-15T09:40:48.9584535Z             {
2026-06-15T09:40:48.9584648Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:40:48.9584745Z               "line": 100
2026-06-15T09:40:48.9584822Z             }
2026-06-15T09:40:48.9584897Z           ]
2026-06-15T09:40:48.9584982Z         },
2026-06-15T09:40:48.9585060Z         "int": {
2026-06-15T09:40:48.9585146Z           "complete": false,
2026-06-15T09:40:48.9585231Z           "evidence": []
2026-06-15T09:40:48.9585307Z         },
2026-06-15T09:40:48.9585389Z         "unit": {
2026-06-15T09:40:48.9585475Z           "complete": true,
2026-06-15T09:40:48.9585555Z           "evidence": [
2026-06-15T09:40:48.9585636Z             {
2026-06-15T09:40:48.9585760Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:40:48.9585846Z               "line": 24
2026-06-15T09:40:48.9585936Z             },
2026-06-15T09:40:48.9586014Z             {
2026-06-15T09:40:48.9586137Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T09:40:48.9586237Z               "line": 56
2026-06-15T09:40:48.9586314Z             }
2026-06-15T09:40:48.9586409Z           ]
2026-06-15T09:40:48.9586485Z         }
2026-06-15T09:40:48.9586570Z       }
2026-06-15T09:40:48.9586653Z     },
2026-06-15T09:40:48.9586733Z     {
2026-06-15T09:40:48.9586823Z       "id": "REQ-TERM-2",
2026-06-15T09:40:48.9587006Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T09:40:48.9587104Z       "requiredStages": [
2026-06-15T09:40:48.9587180Z         "impl",
2026-06-15T09:40:48.9587266Z         "unit"
2026-06-15T09:40:48.9587333Z       ],
2026-06-15T09:40:48.9587424Z       "stages": {
2026-06-15T09:40:48.9587508Z         "doc": {
2026-06-15T09:40:48.9587600Z           "complete": false,
2026-06-15T09:40:48.9587687Z           "evidence": []
2026-06-15T09:40:48.9587767Z         },
2026-06-15T09:40:48.9587842Z         "impl": {
2026-06-15T09:40:48.9587930Z           "complete": true,
2026-06-15T09:40:48.9588087Z           "evidence": [
2026-06-15T09:40:48.9588171Z             {
2026-06-15T09:40:48.9588282Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:40:48.9588434Z               "line": 117
2026-06-15T09:40:48.9588505Z             },
2026-06-15T09:40:48.9588588Z             {
2026-06-15T09:40:48.9588692Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T09:40:48.9588777Z               "line": 127
2026-06-15T09:40:48.9588854Z             }
2026-06-15T09:40:48.9588931Z           ]
2026-06-15T09:40:48.9589092Z         },
2026-06-15T09:40:48.9589169Z         "int": {
2026-06-15T09:40:48.9589256Z           "complete": false,
2026-06-15T09:40:48.9589330Z           "evidence": []
2026-06-15T09:40:48.9589425Z         },
2026-06-15T09:40:48.9589520Z         "unit": {
2026-06-15T09:40:48.9589606Z           "complete": true,
2026-06-15T09:40:48.9589694Z           "evidence": [
2026-06-15T09:40:48.9589775Z             {
2026-06-15T09:40:48.9589890Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T09:40:48.9589982Z               "line": 46
2026-06-15T09:40:48.9590056Z             },
2026-06-15T09:40:48.9590147Z             {
2026-06-15T09:40:48.9590253Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T09:40:48.9590329Z               "line": 77
2026-06-15T09:40:48.9590409Z             }
2026-06-15T09:40:48.9590496Z           ]
2026-06-15T09:40:48.9590577Z         }
2026-06-15T09:40:48.9590658Z       }
2026-06-15T09:40:48.9590733Z     },
2026-06-15T09:40:48.9590801Z     {
2026-06-15T09:40:48.9590896Z       "id": "REQ-TERM-3",
2026-06-15T09:40:48.9591015Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T09:40:48.9591106Z       "requiredStages": [
2026-06-15T09:40:48.9591188Z         "impl",
2026-06-15T09:40:48.9591263Z         "unit"
2026-06-15T09:40:48.9591344Z       ],
2026-06-15T09:40:48.9591426Z       "stages": {
2026-06-15T09:40:48.9591508Z         "doc": {
2026-06-15T09:40:48.9591591Z           "complete": false,
2026-06-15T09:40:48.9591687Z           "evidence": []
2026-06-15T09:40:48.9591769Z         },
2026-06-15T09:40:48.9591855Z         "impl": {
2026-06-15T09:40:48.9591950Z           "complete": true,
2026-06-15T09:40:48.9592036Z           "evidence": [
2026-06-15T09:40:48.9592123Z             {
2026-06-15T09:40:48.9592230Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T09:40:48.9592316Z               "line": 71
2026-06-15T09:40:48.9592392Z             }
2026-06-15T09:40:48.9592469Z           ]
2026-06-15T09:40:48.9592552Z         },
2026-06-15T09:40:48.9592633Z         "int": {
2026-06-15T09:40:48.9592728Z           "complete": false,
2026-06-15T09:40:48.9592810Z           "evidence": []
2026-06-15T09:40:48.9592895Z         },
2026-06-15T09:40:48.9592976Z         "unit": {
2026-06-15T09:40:48.9593053Z           "complete": true,
2026-06-15T09:40:48.9593143Z           "evidence": [
2026-06-15T09:40:48.9593224Z             {
2026-06-15T09:40:48.9593344Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T09:40:48.9593435Z               "line": 37
2026-06-15T09:40:48.9593511Z             },
2026-06-15T09:40:48.9593596Z             {
2026-06-15T09:40:48.9593712Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T09:40:48.9593796Z               "line": 67
2026-06-15T09:40:48.9593877Z             }
2026-06-15T09:40:48.9593958Z           ]
2026-06-15T09:40:48.9594036Z         }
2026-06-15T09:40:48.9594116Z       }
2026-06-15T09:40:48.9594197Z     },
2026-06-15T09:40:48.9594278Z     {
2026-06-15T09:40:48.9594370Z       "id": "REQ-TERM-4",
2026-06-15T09:40:48.9594826Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T09:40:48.9594920Z       "requiredStages": [
2026-06-15T09:40:48.9595002Z         "impl",
2026-06-15T09:40:48.9595081Z         "unit",
2026-06-15T09:40:48.9595162Z         "int"
2026-06-15T09:40:48.9595237Z       ],
2026-06-15T09:40:48.9595424Z       "stages": {
2026-06-15T09:40:48.9595505Z         "doc": {
2026-06-15T09:40:48.9595687Z           "complete": false,
2026-06-15T09:40:48.9595767Z           "evidence": []
2026-06-15T09:40:48.9595862Z         },
2026-06-15T09:40:48.9595950Z         "impl": {
2026-06-15T09:40:48.9596035Z           "complete": true,
2026-06-15T09:40:48.9596124Z           "evidence": [
2026-06-15T09:40:48.9596206Z             {
2026-06-15T09:40:48.9596330Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9596416Z               "line": 37
2026-06-15T09:40:48.9596496Z             },
2026-06-15T09:40:48.9596579Z             {
2026-06-15T09:40:48.9596702Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9596783Z               "line": 25
2026-06-15T09:40:48.9596850Z             },
2026-06-15T09:40:48.9596927Z             {
2026-06-15T09:40:48.9597040Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9597122Z               "line": 114
2026-06-15T09:40:48.9597213Z             },
2026-06-15T09:40:48.9597293Z             {
2026-06-15T09:40:48.9597446Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9597538Z               "line": 267
2026-06-15T09:40:48.9597618Z             },
2026-06-15T09:40:48.9597698Z             {
2026-06-15T09:40:48.9597816Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9597908Z               "line": 289
2026-06-15T09:40:48.9597989Z             },
2026-06-15T09:40:48.9598069Z             {
2026-06-15T09:40:48.9598170Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9598265Z               "line": 307
2026-06-15T09:40:48.9598346Z             },
2026-06-15T09:40:48.9598426Z             {
2026-06-15T09:40:48.9598537Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.9598623Z               "line": 33
2026-06-15T09:40:48.9598708Z             },
2026-06-15T09:40:48.9598784Z             {
2026-06-15T09:40:48.9598909Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9599070Z               "line": 52
2026-06-15T09:40:48.9599153Z             },
2026-06-15T09:40:48.9599242Z             {
2026-06-15T09:40:48.9599352Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9599434Z               "line": 180
2026-06-15T09:40:48.9599510Z             },
2026-06-15T09:40:48.9599590Z             {
2026-06-15T09:40:48.9599690Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9599787Z               "line": 190
2026-06-15T09:40:48.9599868Z             },
2026-06-15T09:40:48.9599947Z             {
2026-06-15T09:40:48.9600066Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9600147Z               "line": 250
2026-06-15T09:40:48.9600231Z             },
2026-06-15T09:40:48.9600312Z             {
2026-06-15T09:40:48.9600431Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9600513Z               "line": 280
2026-06-15T09:40:48.9600598Z             },
2026-06-15T09:40:48.9600669Z             {
2026-06-15T09:40:48.9600780Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9600875Z               "line": 291
2026-06-15T09:40:48.9604233Z             },
2026-06-15T09:40:48.9604338Z             {
2026-06-15T09:40:48.9604456Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9604543Z               "line": 1086
2026-06-15T09:40:48.9604625Z             }
2026-06-15T09:40:48.9604704Z           ]
2026-06-15T09:40:48.9604781Z         },
2026-06-15T09:40:48.9604858Z         "int": {
2026-06-15T09:40:48.9604959Z           "complete": true,
2026-06-15T09:40:48.9605052Z           "evidence": [
2026-06-15T09:40:48.9605134Z             {
2026-06-15T09:40:48.9605255Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T09:40:48.9605334Z               "line": 18
2026-06-15T09:40:48.9605414Z             }
2026-06-15T09:40:48.9605633Z           ]
2026-06-15T09:40:48.9605712Z         },
2026-06-15T09:40:48.9605792Z         "unit": {
2026-06-15T09:40:48.9605971Z           "complete": true,
2026-06-15T09:40:48.9606050Z           "evidence": [
2026-06-15T09:40:48.9606132Z             {
2026-06-15T09:40:48.9606256Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9606341Z               "line": 349
2026-06-15T09:40:48.9606422Z             },
2026-06-15T09:40:48.9606500Z             {
2026-06-15T09:40:48.9606609Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9606694Z               "line": 401
2026-06-15T09:40:48.9606771Z             },
2026-06-15T09:40:48.9606858Z             {
2026-06-15T09:40:48.9606976Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9607057Z               "line": 411
2026-06-15T09:40:48.9607144Z             },
2026-06-15T09:40:48.9607233Z             {
2026-06-15T09:40:48.9607367Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9607454Z               "line": 436
2026-06-15T09:40:48.9607539Z             },
2026-06-15T09:40:48.9607629Z             {
2026-06-15T09:40:48.9607745Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9607835Z               "line": 456
2026-06-15T09:40:48.9607910Z             },
2026-06-15T09:40:48.9607992Z             {
2026-06-15T09:40:48.9608107Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9608192Z               "line": 478
2026-06-15T09:40:48.9608272Z             },
2026-06-15T09:40:48.9608352Z             {
2026-06-15T09:40:48.9608458Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9608539Z               "line": 491
2026-06-15T09:40:48.9608620Z             },
2026-06-15T09:40:48.9608701Z             {
2026-06-15T09:40:48.9608816Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T09:40:48.9608906Z               "line": 502
2026-06-15T09:40:48.9609083Z             },
2026-06-15T09:40:48.9609169Z             {
2026-06-15T09:40:48.9609268Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.9609350Z               "line": 108
2026-06-15T09:40:48.9609421Z             },
2026-06-15T09:40:48.9609502Z             {
2026-06-15T09:40:48.9609611Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:40:48.9609694Z               "line": 119
2026-06-15T09:40:48.9609774Z             },
2026-06-15T09:40:48.9609850Z             {
2026-06-15T09:40:48.9609960Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:40:48.9610042Z               "line": 127
2026-06-15T09:40:48.9610127Z             },
2026-06-15T09:40:48.9610203Z             {
2026-06-15T09:40:48.9610318Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9610399Z               "line": 474
2026-06-15T09:40:48.9610479Z             },
2026-06-15T09:40:48.9610559Z             {
2026-06-15T09:40:48.9610670Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9610749Z               "line": 501
2026-06-15T09:40:48.9610829Z             },
2026-06-15T09:40:48.9610914Z             {
2026-06-15T09:40:48.9611035Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9611120Z               "line": 520
2026-06-15T09:40:48.9611205Z             },
2026-06-15T09:40:48.9611287Z             {
2026-06-15T09:40:48.9611388Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9611473Z               "line": 535
2026-06-15T09:40:48.9611553Z             },
2026-06-15T09:40:48.9611626Z             {
2026-06-15T09:40:48.9611735Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9611821Z               "line": 561
2026-06-15T09:40:48.9611902Z             },
2026-06-15T09:40:48.9611984Z             {
2026-06-15T09:40:48.9612107Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9612183Z               "line": 581
2026-06-15T09:40:48.9612265Z             },
2026-06-15T09:40:48.9612474Z             {
2026-06-15T09:40:48.9612594Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9612770Z               "line": 591
2026-06-15T09:40:48.9612847Z             },
2026-06-15T09:40:48.9612928Z             {
2026-06-15T09:40:48.9613041Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9613118Z               "line": 683
2026-06-15T09:40:48.9613195Z             },
2026-06-15T09:40:48.9613272Z             {
2026-06-15T09:40:48.9613375Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9613455Z               "line": 761
2026-06-15T09:40:48.9613541Z             },
2026-06-15T09:40:48.9613621Z             {
2026-06-15T09:40:48.9613720Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9613801Z               "line": 8052
2026-06-15T09:40:48.9613887Z             }
2026-06-15T09:40:48.9613959Z           ]
2026-06-15T09:40:48.9614039Z         }
2026-06-15T09:40:48.9614125Z       }
2026-06-15T09:40:48.9614202Z     },
2026-06-15T09:40:48.9614283Z     {
2026-06-15T09:40:48.9614368Z       "id": "REQ-TERM-5",
2026-06-15T09:40:48.9615862Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T09:40:48.9615955Z       "requiredStages": [
2026-06-15T09:40:48.9616031Z         "doc",
2026-06-15T09:40:48.9616117Z         "impl",
2026-06-15T09:40:48.9616202Z         "unit",
2026-06-15T09:40:48.9616282Z         "int"
2026-06-15T09:40:48.9616372Z       ],
2026-06-15T09:40:48.9616454Z       "stages": {
2026-06-15T09:40:48.9616540Z         "doc": {
2026-06-15T09:40:48.9616630Z           "complete": true,
2026-06-15T09:40:48.9616721Z           "evidence": [
2026-06-15T09:40:48.9616802Z             {
2026-06-15T09:40:48.9616902Z               "path": "docs/MANIFEST.md",
2026-06-15T09:40:48.9616997Z               "line": 156
2026-06-15T09:40:48.9617079Z             }
2026-06-15T09:40:48.9617159Z           ]
2026-06-15T09:40:48.9617240Z         },
2026-06-15T09:40:48.9617321Z         "impl": {
2026-06-15T09:40:48.9617403Z           "complete": true,
2026-06-15T09:40:48.9617488Z           "evidence": [
2026-06-15T09:40:48.9617569Z             {
2026-06-15T09:40:48.9617685Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9617770Z               "line": 75
2026-06-15T09:40:48.9617847Z             },
2026-06-15T09:40:48.9617927Z             {
2026-06-15T09:40:48.9618047Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9618122Z               "line": 131
2026-06-15T09:40:48.9618208Z             },
2026-06-15T09:40:48.9618295Z             {
2026-06-15T09:40:48.9618405Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9618484Z               "line": 22
2026-06-15T09:40:48.9618561Z             },
2026-06-15T09:40:48.9618643Z             {
2026-06-15T09:40:48.9618748Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9618832Z               "line": 81
2026-06-15T09:40:48.9618912Z             },
2026-06-15T09:40:48.9619062Z             {
2026-06-15T09:40:48.9619175Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T09:40:48.9619261Z               "line": 30
2026-06-15T09:40:48.9619347Z             },
2026-06-15T09:40:48.9619424Z             {
2026-06-15T09:40:48.9619542Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9619620Z               "line": 103
2026-06-15T09:40:48.9619700Z             },
2026-06-15T09:40:48.9619881Z             {
2026-06-15T09:40:48.9620005Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9620167Z               "line": 167
2026-06-15T09:40:48.9620249Z             },
2026-06-15T09:40:48.9620325Z             {
2026-06-15T09:40:48.9620439Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9620525Z               "line": 434
2026-06-15T09:40:48.9620593Z             },
2026-06-15T09:40:48.9620673Z             {
2026-06-15T09:40:48.9620777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9620854Z               "line": 5074
2026-06-15T09:40:48.9620936Z             },
2026-06-15T09:40:48.9621015Z             {
2026-06-15T09:40:48.9621119Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9621200Z               "line": 5108
2026-06-15T09:40:48.9621277Z             }
2026-06-15T09:40:48.9621361Z           ]
2026-06-15T09:40:48.9621441Z         },
2026-06-15T09:40:48.9621527Z         "int": {
2026-06-15T09:40:48.9621624Z           "complete": true,
2026-06-15T09:40:48.9621709Z           "evidence": [
2026-06-15T09:40:48.9621794Z             {
2026-06-15T09:40:48.9621948Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:40:48.9622028Z               "line": 17
2026-06-15T09:40:48.9622108Z             }
2026-06-15T09:40:48.9622187Z           ]
2026-06-15T09:40:48.9622267Z         },
2026-06-15T09:40:48.9622342Z         "unit": {
2026-06-15T09:40:48.9622433Z           "complete": true,
2026-06-15T09:40:48.9622515Z           "evidence": [
2026-06-15T09:40:48.9622586Z             {
2026-06-15T09:40:48.9622700Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9622782Z               "line": 360
2026-06-15T09:40:48.9622863Z             },
2026-06-15T09:40:48.9622939Z             {
2026-06-15T09:40:48.9623039Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9623121Z               "line": 153
2026-06-15T09:40:48.9623202Z             },
2026-06-15T09:40:48.9623287Z             {
2026-06-15T09:40:48.9623387Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9623470Z               "line": 169
2026-06-15T09:40:48.9623549Z             },
2026-06-15T09:40:48.9623635Z             {
2026-06-15T09:40:48.9623736Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9623827Z               "line": 191
2026-06-15T09:40:48.9623897Z             },
2026-06-15T09:40:48.9623982Z             {
2026-06-15T09:40:48.9624082Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9624172Z               "line": 202
2026-06-15T09:40:48.9624257Z             },
2026-06-15T09:40:48.9624337Z             {
2026-06-15T09:40:48.9624433Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T09:40:48.9624514Z               "line": 213
2026-06-15T09:40:48.9624595Z             },
2026-06-15T09:40:48.9624676Z             {
2026-06-15T09:40:48.9624796Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.9624891Z               "line": 1064
2026-06-15T09:40:48.9624966Z             },
2026-06-15T09:40:48.9625049Z             {
2026-06-15T09:40:48.9625163Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.9625253Z               "line": 1107
2026-06-15T09:40:48.9625325Z             },
2026-06-15T09:40:48.9625411Z             {
2026-06-15T09:40:48.9625530Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9625605Z               "line": 606
2026-06-15T09:40:48.9625683Z             },
2026-06-15T09:40:48.9625759Z             {
2026-06-15T09:40:48.9625868Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9625954Z               "line": 634
2026-06-15T09:40:48.9626040Z             },
2026-06-15T09:40:48.9626116Z             {
2026-06-15T09:40:48.9626235Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9626322Z               "line": 646
2026-06-15T09:40:48.9626398Z             },
2026-06-15T09:40:48.9626563Z             {
2026-06-15T09:40:48.9626663Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9626818Z               "line": 669
2026-06-15T09:40:48.9626904Z             },
2026-06-15T09:40:48.9626981Z             {
2026-06-15T09:40:48.9627087Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9627175Z               "line": 6876
2026-06-15T09:40:48.9627257Z             }
2026-06-15T09:40:48.9627334Z           ]
2026-06-15T09:40:48.9627420Z         }
2026-06-15T09:40:48.9627509Z       }
2026-06-15T09:40:48.9627576Z     },
2026-06-15T09:40:48.9627663Z     {
2026-06-15T09:40:48.9627749Z       "id": "REQ-TERM-6",
2026-06-15T09:40:48.9628884Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T09:40:48.9629054Z       "requiredStages": [
2026-06-15T09:40:48.9629131Z         "impl",
2026-06-15T09:40:48.9629218Z         "unit",
2026-06-15T09:40:48.9629294Z         "int"
2026-06-15T09:40:48.9629373Z       ],
2026-06-15T09:40:48.9629468Z       "stages": {
2026-06-15T09:40:48.9629559Z         "doc": {
2026-06-15T09:40:48.9629651Z           "complete": false,
2026-06-15T09:40:48.9629730Z           "evidence": []
2026-06-15T09:40:48.9629806Z         },
2026-06-15T09:40:48.9629889Z         "impl": {
2026-06-15T09:40:48.9629984Z           "complete": true,
2026-06-15T09:40:48.9630074Z           "evidence": [
2026-06-15T09:40:48.9630151Z             {
2026-06-15T09:40:48.9630274Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9630355Z               "line": 132
2026-06-15T09:40:48.9630441Z             },
2026-06-15T09:40:48.9630518Z             {
2026-06-15T09:40:48.9630642Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9630732Z               "line": 176
2026-06-15T09:40:48.9630809Z             },
2026-06-15T09:40:48.9630890Z             {
2026-06-15T09:40:48.9630999Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9631085Z               "line": 17
2026-06-15T09:40:48.9631162Z             },
2026-06-15T09:40:48.9631247Z             {
2026-06-15T09:40:48.9631361Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9631429Z               "line": 96
2026-06-15T09:40:48.9631510Z             },
2026-06-15T09:40:48.9631590Z             {
2026-06-15T09:40:48.9631708Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9631804Z               "line": 319
2026-06-15T09:40:48.9631883Z             },
2026-06-15T09:40:48.9631954Z             {
2026-06-15T09:40:48.9632064Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9632160Z               "line": 396
2026-06-15T09:40:48.9632235Z             }
2026-06-15T09:40:48.9632321Z           ]
2026-06-15T09:40:48.9632402Z         },
2026-06-15T09:40:48.9632479Z         "int": {
2026-06-15T09:40:48.9632574Z           "complete": true,
2026-06-15T09:40:48.9632655Z           "evidence": [
2026-06-15T09:40:48.9632732Z             {
2026-06-15T09:40:48.9632875Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:40:48.9632955Z               "line": 18
2026-06-15T09:40:48.9633037Z             }
2026-06-15T09:40:48.9633113Z           ]
2026-06-15T09:40:48.9633199Z         },
2026-06-15T09:40:48.9633275Z         "unit": {
2026-06-15T09:40:48.9633356Z           "complete": true,
2026-06-15T09:40:48.9633433Z           "evidence": [
2026-06-15T09:40:48.9633509Z             {
2026-06-15T09:40:48.9633618Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9633701Z               "line": 126
2026-06-15T09:40:48.9633771Z             },
2026-06-15T09:40:48.9633952Z             {
2026-06-15T09:40:48.9634067Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9634243Z               "line": 141
2026-06-15T09:40:48.9634325Z             },
2026-06-15T09:40:48.9634406Z             {
2026-06-15T09:40:48.9634509Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9634594Z               "line": 157
2026-06-15T09:40:48.9634671Z             },
2026-06-15T09:40:48.9634755Z             {
2026-06-15T09:40:48.9634864Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T09:40:48.9634955Z               "line": 175
2026-06-15T09:40:48.9635032Z             },
2026-06-15T09:40:48.9635098Z             {
2026-06-15T09:40:48.9635211Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9635289Z               "line": 738
2026-06-15T09:40:48.9635370Z             },
2026-06-15T09:40:48.9635446Z             {
2026-06-15T09:40:48.9635565Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9635661Z               "line": 759
2026-06-15T09:40:48.9635737Z             },
2026-06-15T09:40:48.9635822Z             {
2026-06-15T09:40:48.9635938Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T09:40:48.9636028Z               "line": 602
2026-06-15T09:40:48.9636104Z             }
2026-06-15T09:40:48.9636190Z           ]
2026-06-15T09:40:48.9636277Z         }
2026-06-15T09:40:48.9636357Z       }
2026-06-15T09:40:48.9636442Z     },
2026-06-15T09:40:48.9636519Z     {
2026-06-15T09:40:48.9636615Z       "id": "REQ-TERM-7",
2026-06-15T09:40:48.9637736Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T09:40:48.9637836Z       "requiredStages": [
2026-06-15T09:40:48.9637932Z         "impl",
2026-06-15T09:40:48.9638013Z         "unit",
2026-06-15T09:40:48.9638088Z         "int"
2026-06-15T09:40:48.9638176Z       ],
2026-06-15T09:40:48.9638256Z       "stages": {
2026-06-15T09:40:48.9638337Z         "doc": {
2026-06-15T09:40:48.9638427Z           "complete": false,
2026-06-15T09:40:48.9638519Z           "evidence": []
2026-06-15T09:40:48.9638595Z         },
2026-06-15T09:40:48.9638676Z         "impl": {
2026-06-15T09:40:48.9638757Z           "complete": true,
2026-06-15T09:40:48.9638838Z           "evidence": [
2026-06-15T09:40:48.9638919Z             {
2026-06-15T09:40:48.9639100Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9639187Z               "line": 133
2026-06-15T09:40:48.9639266Z             },
2026-06-15T09:40:48.9639348Z             {
2026-06-15T09:40:48.9639445Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9639539Z               "line": 311
2026-06-15T09:40:48.9639619Z             },
2026-06-15T09:40:48.9639696Z             {
2026-06-15T09:40:48.9639807Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:40:48.9639882Z               "line": 15
2026-06-15T09:40:48.9639966Z             },
2026-06-15T09:40:48.9640047Z             {
2026-06-15T09:40:48.9640149Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:40:48.9640230Z               "line": 32
2026-06-15T09:40:48.9640309Z             },
2026-06-15T09:40:48.9640396Z             {
2026-06-15T09:40:48.9640496Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.9640587Z               "line": 49
2026-06-15T09:40:48.9640672Z             },
2026-06-15T09:40:48.9640749Z             {
2026-06-15T09:40:48.9640869Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9640948Z               "line": 286
2026-06-15T09:40:48.9641025Z             },
2026-06-15T09:40:48.9641230Z             {
2026-06-15T09:40:48.9641350Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9641521Z               "line": 320
2026-06-15T09:40:48.9641602Z             }
2026-06-15T09:40:48.9641680Z           ]
2026-06-15T09:40:48.9641756Z         },
2026-06-15T09:40:48.9641835Z         "int": {
2026-06-15T09:40:48.9641912Z           "complete": true,
2026-06-15T09:40:48.9641999Z           "evidence": [
2026-06-15T09:40:48.9642080Z             {
2026-06-15T09:40:48.9642221Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T09:40:48.9642312Z               "line": 19
2026-06-15T09:40:48.9642383Z             }
2026-06-15T09:40:48.9642467Z           ]
2026-06-15T09:40:48.9642548Z         },
2026-06-15T09:40:48.9642629Z         "unit": {
2026-06-15T09:40:48.9642725Z           "complete": true,
2026-06-15T09:40:48.9642805Z           "evidence": [
2026-06-15T09:40:48.9642886Z             {
2026-06-15T09:40:48.9642991Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9643087Z               "line": 440
2026-06-15T09:40:48.9643167Z             },
2026-06-15T09:40:48.9643253Z             {
2026-06-15T09:40:48.9643373Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T09:40:48.9643454Z               "line": 551
2026-06-15T09:40:48.9643539Z             },
2026-06-15T09:40:48.9643621Z             {
2026-06-15T09:40:48.9643730Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:40:48.9643815Z               "line": 58
2026-06-15T09:40:48.9643897Z             },
2026-06-15T09:40:48.9643974Z             {
2026-06-15T09:40:48.9644079Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:40:48.9644169Z               "line": 77
2026-06-15T09:40:48.9644241Z             },
2026-06-15T09:40:48.9644322Z             {
2026-06-15T09:40:48.9644426Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T09:40:48.9644512Z               "line": 87
2026-06-15T09:40:48.9644590Z             },
2026-06-15T09:40:48.9644669Z             {
2026-06-15T09:40:48.9644779Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T09:40:48.9644862Z               "line": 94
2026-06-15T09:40:48.9644943Z             },
2026-06-15T09:40:48.9645017Z             {
2026-06-15T09:40:48.9645140Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9645226Z               "line": 691
2026-06-15T09:40:48.9645306Z             },
2026-06-15T09:40:48.9645386Z             {
2026-06-15T09:40:48.9645496Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T09:40:48.9645582Z               "line": 716
2026-06-15T09:40:48.9645658Z             }
2026-06-15T09:40:48.9645748Z           ]
2026-06-15T09:40:48.9645839Z         }
2026-06-15T09:40:48.9645916Z       }
2026-06-15T09:40:48.9645997Z     },
2026-06-15T09:40:48.9646077Z     {
2026-06-15T09:40:48.9646174Z       "id": "REQ-UPD-1",
2026-06-15T09:40:48.9646293Z       "title": "Peer-propagated update over P2P",
2026-06-15T09:40:48.9646392Z       "requiredStages": [
2026-06-15T09:40:48.9646478Z         "impl",
2026-06-15T09:40:48.9646560Z         "unit",
2026-06-15T09:40:48.9646650Z         "int"
2026-06-15T09:40:48.9646726Z       ],
2026-06-15T09:40:48.9646813Z       "stages": {
2026-06-15T09:40:48.9646893Z         "doc": {
2026-06-15T09:40:48.9646978Z           "complete": false,
2026-06-15T09:40:48.9647064Z           "evidence": []
2026-06-15T09:40:48.9647142Z         },
2026-06-15T09:40:48.9647227Z         "impl": {
2026-06-15T09:40:48.9647303Z           "complete": true,
2026-06-15T09:40:48.9647384Z           "evidence": [
2026-06-15T09:40:48.9647462Z             {
2026-06-15T09:40:48.9647589Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9647674Z               "line": 28
2026-06-15T09:40:48.9647750Z             },
2026-06-15T09:40:48.9647836Z             {
2026-06-15T09:40:48.9647948Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9648120Z               "line": 103
2026-06-15T09:40:48.9648197Z             },
2026-06-15T09:40:48.9648282Z             {
2026-06-15T09:40:48.9648459Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9648530Z               "line": 342
2026-06-15T09:40:48.9648611Z             },
2026-06-15T09:40:48.9648687Z             {
2026-06-15T09:40:48.9648802Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9648883Z               "line": 22
2026-06-15T09:40:48.9649060Z             },
2026-06-15T09:40:48.9649141Z             {
2026-06-15T09:40:48.9649250Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9649341Z               "line": 207
2026-06-15T09:40:48.9649413Z             },
2026-06-15T09:40:48.9649488Z             {
2026-06-15T09:40:48.9649602Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9649680Z               "line": 283
2026-06-15T09:40:48.9649761Z             },
2026-06-15T09:40:48.9649836Z             {
2026-06-15T09:40:48.9649956Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9650042Z               "line": 340
2026-06-15T09:40:48.9650118Z             },
2026-06-15T09:40:48.9650199Z             {
2026-06-15T09:40:48.9650305Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9650386Z               "line": 37
2026-06-15T09:40:48.9650465Z             }
2026-06-15T09:40:48.9650546Z           ]
2026-06-15T09:40:48.9650622Z         },
2026-06-15T09:40:48.9650704Z         "int": {
2026-06-15T09:40:48.9650799Z           "complete": true,
2026-06-15T09:40:48.9650879Z           "evidence": [
2026-06-15T09:40:48.9650961Z             {
2026-06-15T09:40:48.9651080Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T09:40:48.9651175Z               "line": 207
2026-06-15T09:40:48.9651256Z             },
2026-06-15T09:40:48.9651333Z             {
2026-06-15T09:40:48.9651457Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T09:40:48.9651542Z               "line": 988
2026-06-15T09:40:48.9651619Z             }
2026-06-15T09:40:48.9651700Z           ]
2026-06-15T09:40:48.9651781Z         },
2026-06-15T09:40:48.9651857Z         "unit": {
2026-06-15T09:40:48.9651948Z           "complete": true,
2026-06-15T09:40:48.9652043Z           "evidence": [
2026-06-15T09:40:48.9652115Z             {
2026-06-15T09:40:48.9652235Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9652311Z               "line": 490
2026-06-15T09:40:48.9652395Z             },
2026-06-15T09:40:48.9652476Z             {
2026-06-15T09:40:48.9652593Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9652687Z               "line": 616
2026-06-15T09:40:48.9652762Z             },
2026-06-15T09:40:48.9652852Z             {
2026-06-15T09:40:48.9652972Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.9653065Z               "line": 277
2026-06-15T09:40:48.9653136Z             },
2026-06-15T09:40:48.9653232Z             {
2026-06-15T09:40:48.9653347Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9653432Z               "line": 124
2026-06-15T09:40:48.9653508Z             },
2026-06-15T09:40:48.9653595Z             {
2026-06-15T09:40:48.9653713Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9653789Z               "line": 200
2026-06-15T09:40:48.9653881Z             }
2026-06-15T09:40:48.9653957Z           ]
2026-06-15T09:40:48.9654037Z         }
2026-06-15T09:40:48.9654118Z       }
2026-06-15T09:40:48.9654196Z     },
2026-06-15T09:40:48.9654281Z     {
2026-06-15T09:40:48.9654371Z       "id": "REQ-UPD-2",
2026-06-15T09:40:48.9654515Z       "title": "All binaries signature-verified before handoff",
2026-06-15T09:40:48.9654609Z       "requiredStages": [
2026-06-15T09:40:48.9654690Z         "impl",
2026-06-15T09:40:48.9654772Z         "unit"
2026-06-15T09:40:48.9654849Z       ],
2026-06-15T09:40:48.9654929Z       "stages": {
2026-06-15T09:40:48.9655117Z         "doc": {
2026-06-15T09:40:48.9655207Z           "complete": false,
2026-06-15T09:40:48.9655383Z           "evidence": []
2026-06-15T09:40:48.9655460Z         },
2026-06-15T09:40:48.9655545Z         "impl": {
2026-06-15T09:40:48.9655624Z           "complete": true,
2026-06-15T09:40:48.9655705Z           "evidence": [
2026-06-15T09:40:48.9655782Z             {
2026-06-15T09:40:48.9655904Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9655994Z               "line": 343
2026-06-15T09:40:48.9656071Z             },
2026-06-15T09:40:48.9656152Z             {
2026-06-15T09:40:48.9656261Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9656346Z               "line": 476
2026-06-15T09:40:48.9656424Z             },
2026-06-15T09:40:48.9656514Z             {
2026-06-15T09:40:48.9656628Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9656714Z               "line": 29
2026-06-15T09:40:48.9656800Z             },
2026-06-15T09:40:48.9656881Z             {
2026-06-15T09:40:48.9656995Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9657087Z               "line": 271
2026-06-15T09:40:48.9657172Z             },
2026-06-15T09:40:48.9657257Z             {
2026-06-15T09:40:48.9657368Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9657458Z               "line": 288
2026-06-15T09:40:48.9657529Z             },
2026-06-15T09:40:48.9657611Z             {
2026-06-15T09:40:48.9657712Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9657796Z               "line": 408
2026-06-15T09:40:48.9657872Z             },
2026-06-15T09:40:48.9657954Z             {
2026-06-15T09:40:48.9658065Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9658144Z               "line": 540
2026-06-15T09:40:48.9658224Z             },
2026-06-15T09:40:48.9658306Z             {
2026-06-15T09:40:48.9658414Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9658508Z               "line": 155
2026-06-15T09:40:48.9658589Z             }
2026-06-15T09:40:48.9658676Z           ]
2026-06-15T09:40:48.9658752Z         },
2026-06-15T09:40:48.9658837Z         "int": {
2026-06-15T09:40:48.9658938Z           "complete": false,
2026-06-15T09:40:48.9659110Z           "evidence": []
2026-06-15T09:40:48.9659199Z         },
2026-06-15T09:40:48.9659276Z         "unit": {
2026-06-15T09:40:48.9659376Z           "complete": true,
2026-06-15T09:40:48.9659453Z           "evidence": [
2026-06-15T09:40:48.9659533Z             {
2026-06-15T09:40:48.9659653Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9659734Z               "line": 697
2026-06-15T09:40:48.9659814Z             },
2026-06-15T09:40:48.9659886Z             {
2026-06-15T09:40:48.9659992Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9660082Z               "line": 758
2026-06-15T09:40:48.9660163Z             },
2026-06-15T09:40:48.9660245Z             {
2026-06-15T09:40:48.9660353Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9660440Z               "line": 772
2026-06-15T09:40:48.9660521Z             },
2026-06-15T09:40:48.9660603Z             {
2026-06-15T09:40:48.9660716Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9660797Z               "line": 788
2026-06-15T09:40:48.9660879Z             },
2026-06-15T09:40:48.9660960Z             {
2026-06-15T09:40:48.9661078Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9661163Z               "line": 879
2026-06-15T09:40:48.9661249Z             },
2026-06-15T09:40:48.9661331Z             {
2026-06-15T09:40:48.9661444Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9661540Z               "line": 414
2026-06-15T09:40:48.9661617Z             },
2026-06-15T09:40:48.9661693Z             {
2026-06-15T09:40:48.9661792Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9661984Z               "line": 427
2026-06-15T09:40:48.9662160Z             },
2026-06-15T09:40:48.9662236Z             {
2026-06-15T09:40:48.9662355Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.9662441Z               "line": 410
2026-06-15T09:40:48.9662518Z             }
2026-06-15T09:40:48.9662599Z           ]
2026-06-15T09:40:48.9662684Z         }
2026-06-15T09:40:48.9662761Z       }
2026-06-15T09:40:48.9662842Z     },
2026-06-15T09:40:48.9662923Z     {
2026-06-15T09:40:48.9663013Z       "id": "REQ-UPD-3",
2026-06-15T09:40:48.9663181Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T09:40:48.9663275Z       "requiredStages": [
2026-06-15T09:40:48.9663356Z         "impl",
2026-06-15T09:40:48.9663441Z         "unit",
2026-06-15T09:40:48.9663518Z         "int"
2026-06-15T09:40:48.9663597Z       ],
2026-06-15T09:40:48.9663677Z       "stages": {
2026-06-15T09:40:48.9663764Z         "doc": {
2026-06-15T09:40:48.9663854Z           "complete": false,
2026-06-15T09:40:48.9663949Z           "evidence": []
2026-06-15T09:40:48.9664030Z         },
2026-06-15T09:40:48.9664112Z         "impl": {
2026-06-15T09:40:48.9664207Z           "complete": true,
2026-06-15T09:40:48.9664288Z           "evidence": [
2026-06-15T09:40:48.9664369Z             {
2026-06-15T09:40:48.9664484Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9664579Z               "line": 40
2026-06-15T09:40:48.9664645Z             },
2026-06-15T09:40:48.9664728Z             {
2026-06-15T09:40:48.9664836Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9664917Z               "line": 87
2026-06-15T09:40:48.9664994Z             },
2026-06-15T09:40:48.9665075Z             {
2026-06-15T09:40:48.9665184Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T09:40:48.9665260Z               "line": 993
2026-06-15T09:40:48.9665342Z             },
2026-06-15T09:40:48.9665433Z             {
2026-06-15T09:40:48.9665547Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T09:40:48.9665642Z               "line": 1085
2026-06-15T09:40:48.9665724Z             },
2026-06-15T09:40:48.9665809Z             {
2026-06-15T09:40:48.9665914Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9666001Z               "line": 26
2026-06-15T09:40:48.9666077Z             },
2026-06-15T09:40:48.9666156Z             {
2026-06-15T09:40:48.9666275Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9666356Z               "line": 114
2026-06-15T09:40:48.9666446Z             },
2026-06-15T09:40:48.9666535Z             {
2026-06-15T09:40:48.9666640Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9666736Z               "line": 246
2026-06-15T09:40:48.9666816Z             },
2026-06-15T09:40:48.9666902Z             {
2026-06-15T09:40:48.9667003Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9667104Z               "line": 2178
2026-06-15T09:40:48.9670571Z             }
2026-06-15T09:40:48.9670675Z           ]
2026-06-15T09:40:48.9670761Z         },
2026-06-15T09:40:48.9670839Z         "int": {
2026-06-15T09:40:48.9670937Z           "complete": true,
2026-06-15T09:40:48.9671018Z           "evidence": [
2026-06-15T09:40:48.9671101Z             {
2026-06-15T09:40:48.9671233Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T09:40:48.9671314Z               "line": 58
2026-06-15T09:40:48.9671396Z             }
2026-06-15T09:40:48.9671464Z           ]
2026-06-15T09:40:48.9671553Z         },
2026-06-15T09:40:48.9671633Z         "unit": {
2026-06-15T09:40:48.9671728Z           "complete": true,
2026-06-15T09:40:48.9671819Z           "evidence": [
2026-06-15T09:40:48.9671896Z             {
2026-06-15T09:40:48.9672052Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9672177Z               "line": 532
2026-06-15T09:40:48.9672267Z             },
2026-06-15T09:40:48.9672482Z             {
2026-06-15T09:40:48.9672600Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9672773Z               "line": 583
2026-06-15T09:40:48.9672863Z             },
2026-06-15T09:40:48.9672944Z             {
2026-06-15T09:40:48.9673065Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9673140Z               "line": 651
2026-06-15T09:40:48.9673216Z             },
2026-06-15T09:40:48.9673296Z             {
2026-06-15T09:40:48.9673422Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T09:40:48.9673502Z               "line": 1062
2026-06-15T09:40:48.9673578Z             },
2026-06-15T09:40:48.9673660Z             {
2026-06-15T09:40:48.9673779Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9673864Z               "line": 271
2026-06-15T09:40:48.9673944Z             },
2026-06-15T09:40:48.9674026Z             {
2026-06-15T09:40:48.9674143Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9674233Z               "line": 295
2026-06-15T09:40:48.9674304Z             },
2026-06-15T09:40:48.9674386Z             {
2026-06-15T09:40:48.9674500Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9674576Z               "line": 316
2026-06-15T09:40:48.9674658Z             },
2026-06-15T09:40:48.9674739Z             {
2026-06-15T09:40:48.9674848Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9674924Z               "line": 332
2026-06-15T09:40:48.9675001Z             }
2026-06-15T09:40:48.9675082Z           ]
2026-06-15T09:40:48.9675167Z         }
2026-06-15T09:40:48.9675253Z       }
2026-06-15T09:40:48.9675335Z     },
2026-06-15T09:40:48.9675440Z     {
2026-06-15T09:40:48.9675563Z       "id": "REQ-UPD-4",
2026-06-15T09:40:48.9675844Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T09:40:48.9675969Z       "requiredStages": [
2026-06-15T09:40:48.9676092Z         "impl",
2026-06-15T09:40:48.9676212Z         "unit"
2026-06-15T09:40:48.9676294Z       ],
2026-06-15T09:40:48.9676388Z       "stages": {
2026-06-15T09:40:48.9676465Z         "doc": {
2026-06-15T09:40:48.9676566Z           "complete": false,
2026-06-15T09:40:48.9676651Z           "evidence": []
2026-06-15T09:40:48.9676768Z         },
2026-06-15T09:40:48.9676859Z         "impl": {
2026-06-15T09:40:48.9676959Z           "complete": true,
2026-06-15T09:40:48.9677053Z           "evidence": [
2026-06-15T09:40:48.9677138Z             {
2026-06-15T09:40:48.9677263Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9677353Z               "line": 41
2026-06-15T09:40:48.9677433Z             },
2026-06-15T09:40:48.9677515Z             {
2026-06-15T09:40:48.9677634Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9677710Z               "line": 88
2026-06-15T09:40:48.9677796Z             },
2026-06-15T09:40:48.9677864Z             {
2026-06-15T09:40:48.9677983Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9678063Z               "line": 23
2026-06-15T09:40:48.9678154Z             },
2026-06-15T09:40:48.9678236Z             {
2026-06-15T09:40:48.9678345Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9678426Z               "line": 56
2026-06-15T09:40:48.9678503Z             },
2026-06-15T09:40:48.9678579Z             {
2026-06-15T09:40:48.9678683Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9678769Z               "line": 77
2026-06-15T09:40:48.9678846Z             },
2026-06-15T09:40:48.9678926Z             {
2026-06-15T09:40:48.9679132Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T09:40:48.9679214Z               "line": 186
2026-06-15T09:40:48.9679293Z             },
2026-06-15T09:40:48.9679364Z             {
2026-06-15T09:40:48.9679483Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T09:40:48.9679559Z               "line": 108
2026-06-15T09:40:48.9679753Z             },
2026-06-15T09:40:48.9679834Z             {
2026-06-15T09:40:48.9680019Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.9680096Z               "line": 180
2026-06-15T09:40:48.9680177Z             },
2026-06-15T09:40:48.9680258Z             {
2026-06-15T09:40:48.9680362Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9680445Z               "line": 2177
2026-06-15T09:40:48.9680520Z             }
2026-06-15T09:40:48.9680601Z           ]
2026-06-15T09:40:48.9680687Z         },
2026-06-15T09:40:48.9680764Z         "int": {
2026-06-15T09:40:48.9680849Z           "complete": false,
2026-06-15T09:40:48.9680939Z           "evidence": []
2026-06-15T09:40:48.9681016Z         },
2026-06-15T09:40:48.9681103Z         "unit": {
2026-06-15T09:40:48.9681183Z           "complete": true,
2026-06-15T09:40:48.9681264Z           "evidence": [
2026-06-15T09:40:48.9681346Z             {
2026-06-15T09:40:48.9681469Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9681555Z               "line": 579
2026-06-15T09:40:48.9681641Z             },
2026-06-15T09:40:48.9681723Z             {
2026-06-15T09:40:48.9681836Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9681917Z               "line": 704
2026-06-15T09:40:48.9681995Z             },
2026-06-15T09:40:48.9682071Z             {
2026-06-15T09:40:48.9682188Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T09:40:48.9682273Z               "line": 384
2026-06-15T09:40:48.9682355Z             },
2026-06-15T09:40:48.9682433Z             {
2026-06-15T09:40:48.9682541Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9682622Z               "line": 102
2026-06-15T09:40:48.9682704Z             },
2026-06-15T09:40:48.9682785Z             {
2026-06-15T09:40:48.9682884Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9682966Z               "line": 123
2026-06-15T09:40:48.9683047Z             },
2026-06-15T09:40:48.9683128Z             {
2026-06-15T09:40:48.9683237Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T09:40:48.9683319Z               "line": 142
2026-06-15T09:40:48.9683395Z             },
2026-06-15T09:40:48.9683475Z             {
2026-06-15T09:40:48.9683591Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T09:40:48.9683676Z               "line": 413
2026-06-15T09:40:48.9683752Z             },
2026-06-15T09:40:48.9683838Z             {
2026-06-15T09:40:48.9683944Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T09:40:48.9684038Z               "line": 566
2026-06-15T09:40:48.9684114Z             },
2026-06-15T09:40:48.9684200Z             {
2026-06-15T09:40:48.9684302Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9684395Z               "line": 6650
2026-06-15T09:40:48.9684471Z             }
2026-06-15T09:40:48.9684547Z           ]
2026-06-15T09:40:48.9684623Z         }
2026-06-15T09:40:48.9684708Z       }
2026-06-15T09:40:48.9684793Z     },
2026-06-15T09:40:48.9684869Z     {
2026-06-15T09:40:48.9684956Z       "id": "REQ-UPD-5",
2026-06-15T09:40:48.9685089Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T09:40:48.9685184Z       "requiredStages": [
2026-06-15T09:40:48.9685266Z         "impl",
2026-06-15T09:40:48.9685342Z         "unit"
2026-06-15T09:40:48.9685427Z       ],
2026-06-15T09:40:48.9685499Z       "stages": {
2026-06-15T09:40:48.9685580Z         "doc": {
2026-06-15T09:40:48.9685671Z           "complete": false,
2026-06-15T09:40:48.9685756Z           "evidence": []
2026-06-15T09:40:48.9685833Z         },
2026-06-15T09:40:48.9685909Z         "impl": {
2026-06-15T09:40:48.9686000Z           "complete": true,
2026-06-15T09:40:48.9686085Z           "evidence": [
2026-06-15T09:40:48.9686172Z             {
2026-06-15T09:40:48.9686300Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9686391Z               "line": 27
2026-06-15T09:40:48.9686553Z             },
2026-06-15T09:40:48.9686633Z             {
2026-06-15T09:40:48.9686763Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9686906Z               "line": 82
2026-06-15T09:40:48.9686986Z             },
2026-06-15T09:40:48.9687068Z             {
2026-06-15T09:40:48.9687193Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9687272Z               "line": 134
2026-06-15T09:40:48.9687352Z             },
2026-06-15T09:40:48.9687419Z             {
2026-06-15T09:40:48.9687533Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9687622Z               "line": 492
2026-06-15T09:40:48.9687707Z             },
2026-06-15T09:40:48.9687785Z             {
2026-06-15T09:40:48.9687899Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9687975Z               "line": 528
2026-06-15T09:40:48.9688051Z             }
2026-06-15T09:40:48.9688128Z           ]
2026-06-15T09:40:48.9688209Z         },
2026-06-15T09:40:48.9688285Z         "int": {
2026-06-15T09:40:48.9688371Z           "complete": false,
2026-06-15T09:40:48.9688467Z           "evidence": []
2026-06-15T09:40:48.9688538Z         },
2026-06-15T09:40:48.9688623Z         "unit": {
2026-06-15T09:40:48.9688714Z           "complete": true,
2026-06-15T09:40:48.9688801Z           "evidence": [
2026-06-15T09:40:48.9688881Z             {
2026-06-15T09:40:48.9689101Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9689195Z               "line": 232
2026-06-15T09:40:48.9689272Z             },
2026-06-15T09:40:48.9689349Z             {
2026-06-15T09:40:48.9689468Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9689553Z               "line": 246
2026-06-15T09:40:48.9689630Z             },
2026-06-15T09:40:48.9689712Z             {
2026-06-15T09:40:48.9689839Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9689919Z               "line": 260
2026-06-15T09:40:48.9690010Z             },
2026-06-15T09:40:48.9690091Z             {
2026-06-15T09:40:48.9690212Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9690293Z               "line": 274
2026-06-15T09:40:48.9690370Z             },
2026-06-15T09:40:48.9690448Z             {
2026-06-15T09:40:48.9690570Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T09:40:48.9690661Z               "line": 308
2026-06-15T09:40:48.9690737Z             },
2026-06-15T09:40:48.9690814Z             {
2026-06-15T09:40:48.9690937Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T09:40:48.9691015Z               "line": 879
2026-06-15T09:40:48.9691090Z             }
2026-06-15T09:40:48.9691171Z           ]
2026-06-15T09:40:48.9691247Z         }
2026-06-15T09:40:48.9691329Z       }
2026-06-15T09:40:48.9691409Z     },
2026-06-15T09:40:48.9691495Z     {
2026-06-15T09:40:48.9691576Z       "id": "REQ-UPD-6",
2026-06-15T09:40:48.9692373Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T09:40:48.9692468Z       "requiredStages": [
2026-06-15T09:40:48.9692551Z         "doc",
2026-06-15T09:40:48.9692627Z         "impl",
2026-06-15T09:40:48.9692706Z         "unit",
2026-06-15T09:40:48.9692787Z         "int"
2026-06-15T09:40:48.9692863Z       ],
2026-06-15T09:40:48.9692945Z       "stages": {
2026-06-15T09:40:48.9693016Z         "doc": {
2026-06-15T09:40:48.9693106Z           "complete": true,
2026-06-15T09:40:48.9693197Z           "evidence": [
2026-06-15T09:40:48.9693273Z             {
2026-06-15T09:40:48.9693396Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:40:48.9693477Z               "line": 3
2026-06-15T09:40:48.9693555Z             },
2026-06-15T09:40:48.9693740Z             {
2026-06-15T09:40:48.9693841Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T09:40:48.9694021Z               "line": 3
2026-06-15T09:40:48.9694093Z             },
2026-06-15T09:40:48.9694175Z             {
2026-06-15T09:40:48.9694322Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T09:40:48.9694422Z               "line": 3
2026-06-15T09:40:48.9694499Z             }
2026-06-15T09:40:48.9694584Z           ]
2026-06-15T09:40:48.9694665Z         },
2026-06-15T09:40:48.9694742Z         "impl": {
2026-06-15T09:40:48.9694843Z           "complete": true,
2026-06-15T09:40:48.9694922Z           "evidence": [
2026-06-15T09:40:48.9695003Z             {
2026-06-15T09:40:48.9695122Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9695212Z               "line": 76
2026-06-15T09:40:48.9695291Z             },
2026-06-15T09:40:48.9695367Z             {
2026-06-15T09:40:48.9695487Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9695569Z               "line": 212
2026-06-15T09:40:48.9695649Z             },
2026-06-15T09:40:48.9695730Z             {
2026-06-15T09:40:48.9695850Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9695930Z               "line": 69
2026-06-15T09:40:48.9696006Z             },
2026-06-15T09:40:48.9696093Z             {
2026-06-15T09:40:48.9696207Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9696302Z               "line": 133
2026-06-15T09:40:48.9696379Z             },
2026-06-15T09:40:48.9696460Z             {
2026-06-15T09:40:48.9696583Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9696669Z               "line": 243
2026-06-15T09:40:48.9696751Z             },
2026-06-15T09:40:48.9696831Z             {
2026-06-15T09:40:48.9696955Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9697042Z               "line": 406
2026-06-15T09:40:48.9697123Z             },
2026-06-15T09:40:48.9697203Z             {
2026-06-15T09:40:48.9697318Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9697400Z               "line": 534
2026-06-15T09:40:48.9697475Z             },
2026-06-15T09:40:48.9697551Z             {
2026-06-15T09:40:48.9697667Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9697748Z               "line": 548
2026-06-15T09:40:48.9697832Z             },
2026-06-15T09:40:48.9697931Z             {
2026-06-15T09:40:48.9698051Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9698130Z               "line": 603
2026-06-15T09:40:48.9698206Z             },
2026-06-15T09:40:48.9698287Z             {
2026-06-15T09:40:48.9698393Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9698473Z               "line": 634
2026-06-15T09:40:48.9698554Z             },
2026-06-15T09:40:48.9698635Z             {
2026-06-15T09:40:48.9698750Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:40:48.9698840Z               "line": 137
2026-06-15T09:40:48.9698936Z             },
2026-06-15T09:40:48.9699098Z             {
2026-06-15T09:40:48.9699221Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T09:40:48.9699309Z               "line": 184
2026-06-15T09:40:48.9699389Z             },
2026-06-15T09:40:48.9699465Z             {
2026-06-15T09:40:48.9699589Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9699675Z               "line": 78
2026-06-15T09:40:48.9699751Z             },
2026-06-15T09:40:48.9699827Z             {
2026-06-15T09:40:48.9699943Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9700037Z               "line": 114
2026-06-15T09:40:48.9700113Z             },
2026-06-15T09:40:48.9700195Z             {
2026-06-15T09:40:48.9700310Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9700390Z               "line": 185
2026-06-15T09:40:48.9700570Z             },
2026-06-15T09:40:48.9700651Z             {
2026-06-15T09:40:48.9700853Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9700930Z               "line": 260
2026-06-15T09:40:48.9701012Z             },
2026-06-15T09:40:48.9701092Z             {
2026-06-15T09:40:48.9701192Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9701274Z               "line": 292
2026-06-15T09:40:48.9701355Z             },
2026-06-15T09:40:48.9701435Z             {
2026-06-15T09:40:48.9701555Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9701655Z               "line": 323
2026-06-15T09:40:48.9701736Z             },
2026-06-15T09:40:48.9701803Z             {
2026-06-15T09:40:48.9701922Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9702003Z               "line": 346
2026-06-15T09:40:48.9702084Z             },
2026-06-15T09:40:48.9702171Z             {
2026-06-15T09:40:48.9702289Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9702370Z               "line": 388
2026-06-15T09:40:48.9702451Z             },
2026-06-15T09:40:48.9702538Z             {
2026-06-15T09:40:48.9702641Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9702723Z               "line": 398
2026-06-15T09:40:48.9702810Z             },
2026-06-15T09:40:48.9702886Z             {
2026-06-15T09:40:48.9703009Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9703086Z               "line": 410
2026-06-15T09:40:48.9703177Z             },
2026-06-15T09:40:48.9703257Z             {
2026-06-15T09:40:48.9703375Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9703456Z               "line": 420
2026-06-15T09:40:48.9703533Z             },
2026-06-15T09:40:48.9703614Z             {
2026-06-15T09:40:48.9703718Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9703810Z               "line": 439
2026-06-15T09:40:48.9703886Z             },
2026-06-15T09:40:48.9703966Z             {
2026-06-15T09:40:48.9704091Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9704172Z               "line": 449
2026-06-15T09:40:48.9704248Z             },
2026-06-15T09:40:48.9704328Z             {
2026-06-15T09:40:48.9704444Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9704524Z               "line": 94
2026-06-15T09:40:48.9704619Z             },
2026-06-15T09:40:48.9704696Z             {
2026-06-15T09:40:48.9704807Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9704902Z               "line": 120
2026-06-15T09:40:48.9704977Z             },
2026-06-15T09:40:48.9705055Z             {
2026-06-15T09:40:48.9705168Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9705249Z               "line": 135
2026-06-15T09:40:48.9705335Z             },
2026-06-15T09:40:48.9705413Z             {
2026-06-15T09:40:48.9705530Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9705615Z               "line": 162
2026-06-15T09:40:48.9705706Z             },
2026-06-15T09:40:48.9705782Z             {
2026-06-15T09:40:48.9705894Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9705980Z               "line": 174
2026-06-15T09:40:48.9706062Z             },
2026-06-15T09:40:48.9706148Z             {
2026-06-15T09:40:48.9706256Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9706352Z               "line": 185
2026-06-15T09:40:48.9706438Z             },
2026-06-15T09:40:48.9706518Z             {
2026-06-15T09:40:48.9706634Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9706710Z               "line": 451
2026-06-15T09:40:48.9706801Z             },
2026-06-15T09:40:48.9706876Z             {
2026-06-15T09:40:48.9706982Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9707158Z               "line": 555
2026-06-15T09:40:48.9707229Z             },
2026-06-15T09:40:48.9707311Z             {
2026-06-15T09:40:48.9707487Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9707583Z               "line": 171
2026-06-15T09:40:48.9707664Z             },
2026-06-15T09:40:48.9707749Z             {
2026-06-15T09:40:48.9707864Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9707946Z               "line": 65
2026-06-15T09:40:48.9708026Z             },
2026-06-15T09:40:48.9708107Z             {
2026-06-15T09:40:48.9708218Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9708304Z               "line": 71
2026-06-15T09:40:48.9708387Z             },
2026-06-15T09:40:48.9708477Z             {
2026-06-15T09:40:48.9708583Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T09:40:48.9708667Z               "line": 77
2026-06-15T09:40:48.9708747Z             },
2026-06-15T09:40:48.9708842Z             {
2026-06-15T09:40:48.9709019Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9709123Z               "line": 778
2026-06-15T09:40:48.9709210Z             },
2026-06-15T09:40:48.9709291Z             {
2026-06-15T09:40:48.9709400Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9709491Z               "line": 795
2026-06-15T09:40:48.9709568Z             },
2026-06-15T09:40:48.9709649Z             {
2026-06-15T09:40:48.9709753Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9709844Z               "line": 838
2026-06-15T09:40:48.9709925Z             },
2026-06-15T09:40:48.9710006Z             {
2026-06-15T09:40:48.9710106Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9710193Z               "line": 981
2026-06-15T09:40:48.9710273Z             },
2026-06-15T09:40:48.9710349Z             {
2026-06-15T09:40:48.9710445Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9710527Z               "line": 1131
2026-06-15T09:40:48.9710621Z             }
2026-06-15T09:40:48.9710693Z           ]
2026-06-15T09:40:48.9710789Z         },
2026-06-15T09:40:48.9710865Z         "int": {
2026-06-15T09:40:48.9710945Z           "complete": true,
2026-06-15T09:40:48.9711030Z           "evidence": [
2026-06-15T09:40:48.9711101Z             {
2026-06-15T09:40:48.9711220Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.9711305Z               "line": 569
2026-06-15T09:40:48.9711380Z             },
2026-06-15T09:40:48.9711462Z             {
2026-06-15T09:40:48.9711572Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:40:48.9711652Z               "line": 135
2026-06-15T09:40:48.9711734Z             }
2026-06-15T09:40:48.9711810Z           ]
2026-06-15T09:40:48.9711891Z         },
2026-06-15T09:40:48.9711977Z         "unit": {
2026-06-15T09:40:48.9712067Z           "complete": true,
2026-06-15T09:40:48.9712158Z           "evidence": [
2026-06-15T09:40:48.9712234Z             {
2026-06-15T09:40:48.9712358Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9712449Z               "line": 624
2026-06-15T09:40:48.9712535Z             },
2026-06-15T09:40:48.9712615Z             {
2026-06-15T09:40:48.9712726Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9712811Z               "line": 673
2026-06-15T09:40:48.9712897Z             },
2026-06-15T09:40:48.9712973Z             {
2026-06-15T09:40:48.9713093Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T09:40:48.9713174Z               "line": 696
2026-06-15T09:40:48.9713255Z             },
2026-06-15T09:40:48.9713336Z             {
2026-06-15T09:40:48.9713455Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9713550Z               "line": 513
2026-06-15T09:40:48.9713622Z             },
2026-06-15T09:40:48.9713709Z             {
2026-06-15T09:40:48.9713812Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9714036Z               "line": 638
2026-06-15T09:40:48.9714113Z             },
2026-06-15T09:40:48.9714279Z             {
2026-06-15T09:40:48.9714389Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9714475Z               "line": 675
2026-06-15T09:40:48.9714555Z             },
2026-06-15T09:40:48.9714637Z             {
2026-06-15T09:40:48.9714751Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9714837Z               "line": 894
2026-06-15T09:40:48.9714918Z             },
2026-06-15T09:40:48.9714995Z             {
2026-06-15T09:40:48.9715099Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9715180Z               "line": 916
2026-06-15T09:40:48.9715261Z             },
2026-06-15T09:40:48.9715348Z             {
2026-06-15T09:40:48.9715457Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9715532Z               "line": 933
2026-06-15T09:40:48.9715615Z             },
2026-06-15T09:40:48.9715701Z             {
2026-06-15T09:40:48.9715819Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9715905Z               "line": 948
2026-06-15T09:40:48.9715982Z             },
2026-06-15T09:40:48.9716071Z             {
2026-06-15T09:40:48.9716180Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9716271Z               "line": 974
2026-06-15T09:40:48.9716351Z             },
2026-06-15T09:40:48.9716435Z             {
2026-06-15T09:40:48.9716555Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T09:40:48.9716641Z               "line": 457
2026-06-15T09:40:48.9716727Z             },
2026-06-15T09:40:48.9716802Z             {
2026-06-15T09:40:48.9716922Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T09:40:48.9717008Z               "line": 338
2026-06-15T09:40:48.9717088Z             },
2026-06-15T09:40:48.9717174Z             {
2026-06-15T09:40:48.9717271Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9717375Z               "line": 8792
2026-06-15T09:40:48.9717455Z             },
2026-06-15T09:40:48.9717538Z             {
2026-06-15T09:40:48.9717642Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9717732Z               "line": 1260
2026-06-15T09:40:48.9717808Z             },
2026-06-15T09:40:48.9717891Z             {
2026-06-15T09:40:48.9718010Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T09:40:48.9718090Z               "line": 130
2026-06-15T09:40:48.9718172Z             }
2026-06-15T09:40:48.9718253Z           ]
2026-06-15T09:40:48.9718338Z         }
2026-06-15T09:40:48.9718419Z       }
2026-06-15T09:40:48.9718501Z     },
2026-06-15T09:40:48.9718586Z     {
2026-06-15T09:40:48.9718672Z       "id": "REQ-UPD-7",
2026-06-15T09:40:48.9720928Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T09:40:48.9721044Z       "requiredStages": [
2026-06-15T09:40:48.9721125Z         "impl",
2026-06-15T09:40:48.9721214Z         "unit"
2026-06-15T09:40:48.9721291Z       ],
2026-06-15T09:40:48.9721378Z       "stages": {
2026-06-15T09:40:48.9721463Z         "doc": {
2026-06-15T09:40:48.9721543Z           "complete": false,
2026-06-15T09:40:48.9721633Z           "evidence": []
2026-06-15T09:40:48.9721710Z         },
2026-06-15T09:40:48.9721803Z         "impl": {
2026-06-15T09:40:48.9721884Z           "complete": true,
2026-06-15T09:40:48.9722094Z           "evidence": [
2026-06-15T09:40:48.9722179Z             {
2026-06-15T09:40:48.9722284Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9722475Z               "line": 2282
2026-06-15T09:40:48.9722556Z             }
2026-06-15T09:40:48.9722642Z           ]
2026-06-15T09:40:48.9722718Z         },
2026-06-15T09:40:48.9722799Z         "int": {
2026-06-15T09:40:48.9722894Z           "complete": false,
2026-06-15T09:40:48.9722972Z           "evidence": []
2026-06-15T09:40:48.9723052Z         },
2026-06-15T09:40:48.9723128Z         "unit": {
2026-06-15T09:40:48.9723223Z           "complete": true,
2026-06-15T09:40:48.9723306Z           "evidence": [
2026-06-15T09:40:48.9723386Z             {
2026-06-15T09:40:48.9723490Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9723567Z               "line": 8768
2026-06-15T09:40:48.9723649Z             }
2026-06-15T09:40:48.9723729Z           ]
2026-06-15T09:40:48.9723815Z         }
2026-06-15T09:40:48.9723901Z       }
2026-06-15T09:40:48.9724001Z     },
2026-06-15T09:40:48.9724096Z     {
2026-06-15T09:40:48.9724192Z       "id": "REQ-UPD-8",
2026-06-15T09:40:48.9726754Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T09:40:48.9726864Z       "requiredStages": [
2026-06-15T09:40:48.9726949Z         "impl",
2026-06-15T09:40:48.9727038Z         "unit"
2026-06-15T09:40:48.9727125Z       ],
2026-06-15T09:40:48.9727215Z       "stages": {
2026-06-15T09:40:48.9727301Z         "doc": {
2026-06-15T09:40:48.9727386Z           "complete": false,
2026-06-15T09:40:48.9727472Z           "evidence": []
2026-06-15T09:40:48.9727549Z         },
2026-06-15T09:40:48.9727639Z         "impl": {
2026-06-15T09:40:48.9727715Z           "complete": true,
2026-06-15T09:40:48.9727807Z           "evidence": [
2026-06-15T09:40:48.9727887Z             {
2026-06-15T09:40:48.9728011Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9728102Z               "line": 77
2026-06-15T09:40:48.9728179Z             },
2026-06-15T09:40:48.9728264Z             {
2026-06-15T09:40:48.9728388Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9728465Z               "line": 49
2026-06-15T09:40:48.9728545Z             },
2026-06-15T09:40:48.9728631Z             {
2026-06-15T09:40:48.9728746Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9728827Z               "line": 152
2026-06-15T09:40:48.9728908Z             },
2026-06-15T09:40:48.9729066Z             {
2026-06-15T09:40:48.9729175Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9729260Z               "line": 215
2026-06-15T09:40:48.9729343Z             },
2026-06-15T09:40:48.9729419Z             {
2026-06-15T09:40:48.9729522Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9729612Z               "line": 230
2026-06-15T09:40:48.9729689Z             },
2026-06-15T09:40:48.9729774Z             {
2026-06-15T09:40:48.9729891Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9729967Z               "line": 247
2026-06-15T09:40:48.9730054Z             },
2026-06-15T09:40:48.9730121Z             {
2026-06-15T09:40:48.9730239Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9730425Z               "line": 269
2026-06-15T09:40:48.9730516Z             },
2026-06-15T09:40:48.9730693Z             {
2026-06-15T09:40:48.9730793Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9730873Z               "line": 66
2026-06-15T09:40:48.9730955Z             },
2026-06-15T09:40:48.9731037Z             {
2026-06-15T09:40:48.9731155Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T09:40:48.9731240Z               "line": 154
2026-06-15T09:40:48.9731333Z             },
2026-06-15T09:40:48.9731403Z             {
2026-06-15T09:40:48.9731503Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9731585Z               "line": 2156
2026-06-15T09:40:48.9731666Z             },
2026-06-15T09:40:48.9731745Z             {
2026-06-15T09:40:48.9731851Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9731943Z               "line": 2229
2026-06-15T09:40:48.9732019Z             },
2026-06-15T09:40:48.9732112Z             {
2026-06-15T09:40:48.9732212Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9732313Z               "line": 2239
2026-06-15T09:40:48.9732391Z             },
2026-06-15T09:40:48.9732467Z             {
2026-06-15T09:40:48.9732563Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9732640Z               "line": 2246
2026-06-15T09:40:48.9732725Z             },
2026-06-15T09:40:48.9732792Z             {
2026-06-15T09:40:48.9732892Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9732974Z               "line": 2283
2026-06-15T09:40:48.9733054Z             },
2026-06-15T09:40:48.9733135Z             {
2026-06-15T09:40:48.9733236Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9733326Z               "line": 480
2026-06-15T09:40:48.9733406Z             },
2026-06-15T09:40:48.9733488Z             {
2026-06-15T09:40:48.9733584Z               "path": "crates/xtask/src/main.rs",
2026-06-15T09:40:48.9733679Z               "line": 494
2026-06-15T09:40:48.9733760Z             }
2026-06-15T09:40:48.9733837Z           ]
2026-06-15T09:40:48.9733922Z         },
2026-06-15T09:40:48.9734003Z         "int": {
2026-06-15T09:40:48.9734094Z           "complete": false,
2026-06-15T09:40:48.9734181Z           "evidence": []
2026-06-15T09:40:48.9734265Z         },
2026-06-15T09:40:48.9734346Z         "unit": {
2026-06-15T09:40:48.9734427Z           "complete": true,
2026-06-15T09:40:48.9734510Z           "evidence": [
2026-06-15T09:40:48.9734594Z             {
2026-06-15T09:40:48.9734723Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T09:40:48.9734795Z               "line": 476
2026-06-15T09:40:48.9734886Z             },
2026-06-15T09:40:48.9734965Z             {
2026-06-15T09:40:48.9735069Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T09:40:48.9735170Z               "line": 580
2026-06-15T09:40:48.9735261Z             },
2026-06-15T09:40:48.9735347Z             {
2026-06-15T09:40:48.9735447Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9735524Z               "line": 8770
2026-06-15T09:40:48.9735614Z             },
2026-06-15T09:40:48.9735689Z             {
2026-06-15T09:40:48.9735787Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9735881Z               "line": 8792
2026-06-15T09:40:48.9735961Z             }
2026-06-15T09:40:48.9739768Z           ]
2026-06-15T09:40:48.9739874Z         }
2026-06-15T09:40:48.9739960Z       }
2026-06-15T09:40:48.9740036Z     },
2026-06-15T09:40:48.9740115Z     {
2026-06-15T09:40:48.9740215Z       "id": "REQ-WHOAMI-1",
2026-06-15T09:40:48.9741963Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T09:40:48.9742278Z       "requiredStages": [
2026-06-15T09:40:48.9742359Z         "doc",
2026-06-15T09:40:48.9742440Z         "impl",
2026-06-15T09:40:48.9742522Z         "unit"
2026-06-15T09:40:48.9742602Z       ],
2026-06-15T09:40:48.9742682Z       "stages": {
2026-06-15T09:40:48.9742762Z         "doc": {
2026-06-15T09:40:48.9742863Z           "complete": true,
2026-06-15T09:40:48.9742952Z           "evidence": [
2026-06-15T09:40:48.9743042Z             {
2026-06-15T09:40:48.9743137Z               "path": "CONTEXT.md",
2026-06-15T09:40:48.9743229Z               "line": 649
2026-06-15T09:40:48.9743309Z             }
2026-06-15T09:40:48.9743390Z           ]
2026-06-15T09:40:48.9743472Z         },
2026-06-15T09:40:48.9743552Z         "impl": {
2026-06-15T09:40:48.9743637Z           "complete": true,
2026-06-15T09:40:48.9743719Z           "evidence": [
2026-06-15T09:40:48.9743801Z             {
2026-06-15T09:40:48.9743911Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9743995Z               "line": 2766
2026-06-15T09:40:48.9744077Z             },
2026-06-15T09:40:48.9744154Z             {
2026-06-15T09:40:48.9744258Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9744339Z               "line": 2778
2026-06-15T09:40:48.9744416Z             }
2026-06-15T09:40:48.9744501Z           ]
2026-06-15T09:40:48.9744568Z         },
2026-06-15T09:40:48.9744659Z         "int": {
2026-06-15T09:40:48.9744736Z           "complete": false,
2026-06-15T09:40:48.9744835Z           "evidence": []
2026-06-15T09:40:48.9744916Z         },
2026-06-15T09:40:48.9744992Z         "unit": {
2026-06-15T09:40:48.9745089Z           "complete": true,
2026-06-15T09:40:48.9745168Z           "evidence": [
2026-06-15T09:40:48.9745254Z             {
2026-06-15T09:40:48.9745351Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9745446Z               "line": 6347
2026-06-15T09:40:48.9745525Z             },
2026-06-15T09:40:48.9745601Z             {
2026-06-15T09:40:48.9745707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T09:40:48.9745794Z               "line": 6363
2026-06-15T09:40:48.9745878Z             }
2026-06-15T09:40:48.9745959Z           ]
2026-06-15T09:40:48.9746046Z         }
2026-06-15T09:40:48.9746132Z       }
2026-06-15T09:40:48.9746212Z     }
2026-06-15T09:40:48.9746293Z   ],
2026-06-15T09:40:48.9746379Z   "findings": []
2026-06-15T09:40:48.9746470Z }
